您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關js原生map實現的方法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
js原生方法map實現
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="author" content="楊欣">
<title>map</title>
</head>
<body>
<script> Array.prototype.my_map = function (callback) {
if (!Array.isArray(this) || !this.length || typeof callback !== 'function') {
return [] }
else { let result = [];
for (let index = 0;
index < this.length; index++) {
const element = this[index];
result.push(callback(element, index, this))
}
return result
}
} let arr = [1, 2, 3, 4, 5]
let res = arr.my_map((ele, i) => {
return ele + 10 })
console.log(res)
</script>
</body>
</html>
補充知識點
我們平時用的是已經封裝好的map方法,如果讓我們自己封裝一個map,應該如何實現。
萬變不離其宗,其實遍歷數組的核心還是for循環。因此下面封裝一個map方法。
思路:
1.在原型上添加一個方法2.傳一個函數和this3.call 方法傳的參數和封裝好的map方法的參數是一樣的。
Array.prototype.fakeMap = function(fn,context) {let arr = this;let temp = [];for(let i=0;i<arr.length;i++){let result = fn.call(context,arr[i],i,arr);temp.push(result);}return temp;}
看完上述內容,你們對js原生map實現的方法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。