数组拼接与重新分配到同一个数组



我正在解决leetcode上的一个问题,该问题要求我原地修改数组,而不是创建一个新数组然后返回。我曾想过使用Array.prototype.splice,但遇到了一些问题。因此,我决定使用Array.prototype.slice并将值重新分配给现有数组。数组作为引用被传递,我认为这会做与.splice方法相同的事情,但这似乎没有发生。

我找不到任何关于这两件事如何产生不同结果的文件。如有任何帮助,我们将不胜感激。

const myMethod = (arr) => {
for(let i = 0; i < arr.length; i++){
// my logic using arr.splice()
}
}
const arr = [1,2,3,4,5];
myMethod(arr);
console.log(arr); // modified array

其他用例:

const myMethod = (arr) => {
for(let i = 0; i < arr.length; i++){
// my logic using arr reassignment
//  arr = arr.slice().....
}
}
const arr = [1,2,3,4,5];
myMethod(arr);
console.log(arr); // outputs original array

也许您应该尝试使用filter()。那么您甚至不需要运行for循环。Filter返回与给定条件匹配的所有元素的数组。

const myMethod = (arr) =>  {
return arr.filter(entry => {
// filter by whatever condition you like
// example: entry > 2 && < 10
}  
}

最新更新