我正在将数组传递给函数。因为在javascript中 默认情况下,数组通过引用传递,我试图制作数组的副本。但是最后,在函数中执行的操作会影响实际的数组数据。
我要做的就是保存数组的实际状态。
这是我的代码:
let arrcopy =new Array( items.dt);
citem = binarySearch(arrcopy[0], ind.ItemID);
答案 0 :(得分:0)
您是说要保留原始数组(要保留不变性)?
然后使用 reduce 方法。
const test = (arr) => {
return arr.reduce((result, val) => {
// do the needful here
result.push(val);
return result;
}, []);
}
期望(arr)等于(结果); =>将返回false,因为原始数组将不会更新
答案 1 :(得分:0)
您将需要使用Object.assign
创建数组作为副本let arrcopy = Object.assign([],items.dt);
citem = binarySearch(arrcopy[0], ind.ItemID);
或者仅使用破坏/扩展运算符的 ES6 方式就足够了
let arrcopy = [...items.dt];
答案 2 :(得分:0)
JSON.parse(JSON.stingify(items.dt))
这使我的工作