我正在尝试使此地图功能本身更具破坏性。意思是map函数会修改原始数组,而不是新数组。
function map (array, callback) {
var result = []
for (var i = 0; i < array.length; i++) {
result.push(callback(array[i]))
}
console.log("Array",array, "Result",result)
return result
}
console.log返回:
Array [ 5, 2, 1 ] Result [ 6, 3, 2 ]
该数组应为[5,2,1],当前为[6,3,2]
答案 0 :(得分:5)
您的o
创建一个新数组。如果要修改旧数组,则应为其分配(分配给var result = []
参数的属性):
array
请注意,调用此功能function map (array, callback) {
array.forEach((item, i) => {
array[i] = callback(item);
});
return array;
}
const arr = [1, 2];
map(arr, e => e + 1);
console.log(arr);
可能会有点误导,因为map
会执行类似的操作,但是会像原始代码一样创建完全独立的数组。您可能想将此功能调用为Array.prototype.map
以外的其他名称,例如map
或类似的名称。
答案 1 :(得分:0)
您可以遵循此代码...希望您的问题得到解决
function map(array, callback) {
var result=[]
for (var i = 0; i < array.length; i++) {
result.push(callback(array[i]))
}
console.log(result)
}
map([5, 2, 1], (value) => {
return value
})