通过引用传递对象数组并将实际数组保存在JavaScript中

时间:2018-07-17 11:52:38

标签: javascript arrays asp.net-mvc web

我正在将数组传递给函数。因为在javascript中 默认情况下,数组通过引用传递,我试图制作数组的副本。但是最后,在函数中执行的操作会影响实际的数组数据。

我要做的就是保存数组的实际状态。

这是我的代码:

let  arrcopy =new Array( items.dt);
citem = binarySearch(arrcopy[0], ind.ItemID);

3 个答案:

答案 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))

这使我的工作