JavaScript破坏性地图功能
JavaScript Destructive Map Function
我正试图让这个地图函数成为一个更具破坏性的版本。这意味着 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 returns:
Array [ 5, 2, 1 ] Result [ 6, 3, 2 ]
数组应该是 [5,2,1],目前是 [6,3,2]
您的 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
以外的名称,可能是 changeEvery
或类似名称。
你可以按照这个代码...我希望你的问题解决了
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
})
我正试图让这个地图函数成为一个更具破坏性的版本。这意味着 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 returns:
Array [ 5, 2, 1 ] Result [ 6, 3, 2 ]
数组应该是 [5,2,1],目前是 [6,3,2]
您的 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
以外的名称,可能是 changeEvery
或类似名称。
你可以按照这个代码...我希望你的问题解决了
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
})