有什么办法可以做到splice()无损呢?
我需要做的是arr2在调用该函数后保留原样。
function foo(arr1, arr2, n) {
let result = arr2;
result.splice(n, 0, ...arr1.slice(0, arr1.length));
console.log(arr2);
}
foo(["I'm", "not", "done"], ["sorry", "yet"], 1);
Run Code Online (Sandbox Code Playgroud)
虽然它返回的sorry,I'm,not,done,yet是我想要的,但 的元素arr2不应该改变。
您可以在使用 修改数组之前(浅)复制数组 .concat。
let result = [].concat(arr2);
// ... modify result...
Run Code Online (Sandbox Code Playgroud)