gpt4 book ai didi

JavaScript 破坏性 map 函数

转载 作者:行者123 更新时间:2023-11-30 08:20:10 24 4
gpt4 key购买 nike

我正试图让这个 map 功能成为一个更具破坏性的版本。这意味着 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]

最佳答案

您的 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 或类似名称。

关于JavaScript 破坏性 map 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com