<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
// map:可以执行传入的回调函数,并将回调函数的返回值存储在内部所创建的临时数组中,最终将这个数组返回
let arr = [1, 3, 5, 7, 9, 11, 22, 33]
console.log(arr)
// arr = arr.map(function(value, index) {
// return value * 2
// })
// console.log(arr)
// callback:传入的需要执行的回调函数
Array.prototype.mymap = function(callback) {
// 对象调用模式,谁调用函数,谁就是函数中的this
console.log(this)
// 临时数组
let temp = []
// 执行回调函数,将回调函数的结果存储到临时数组中
for (let i = 0; i < this.length; i++) {
let result = callback(this[i], i)
temp.push(result)
}
// 将临时数组返回
return temp
}
arr = arr.mymap(function(value, index) {
return value * 3
})
console.log(arr)
</script>
</body>
</html>