js原生map實現(xiàn)的方法總結
更新時間:2020年01月19日 11:48:33 作者:Samsara315
在本篇文章里小編給大家整理了關于js原生map實現(xiàn)的方法以及實例分析內容,需要的朋友們可以參考下。
js原生方法map實現(xiàn)
<!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,應該如何實現(xiàn)。
萬變不離其宗,其實遍歷數組的核心還是for循環(huán)。因此下面封裝一個map方法。
思路:
1.在原型上添加一個方法
2.傳一個函數和this
3.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;
}
以上就是本次介紹的全部相關知識點,如果大家有任何補充可以聯(lián)系腳本之家的小編。
相關文章
javascript檢測瀏覽器的縮放狀態(tài)實現(xiàn)代碼
這篇文章主要介紹了javascript檢測瀏覽器的縮放狀態(tài)實現(xiàn)代碼,需要的朋友可以參考下2014-09-09
JavaScript 無縫上下左右滾動加定高定寬停頓效果(兼容ie/ff)
JavaScript 指定寬度高度的無間斷滾動實現(xiàn)代碼,這樣的效果適合作為焦點新聞的輪播顯示。2010-03-03
JavaScript requestAnimationFrame動畫詳解
這篇文章主要為大家詳細介紹了JavaScript requestAnimationFrame動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09

