首页 > 解决方案 > 如何处理javascript中的不可变对象?

问题描述

我希望我的对象是不可变的,但是像数百次一样复制同一个对象对我来说没有多大意义。

const arr = [1,2,3]
const arr2 = [...arr, 4]
const arr3 = [...arr, 5]

如果我必须复制更多次怎么办?我该如何处理?我不想每次都为要复制的对象声明 new const。以后如何在我的程序中使用它?

例如,我有一个简单的应用程序,可以更改数组中的值并将其放入 html。

const arr = [10,20];
foo(arr.map(x => x + 5))

如果我想用它的新值再次映射它怎么办?然后一次又一次?我将如何处理这个问题?

标签: javascriptfunctional-programmingimmutabilityfuncmutability

解决方案


我不想每次都为要复制的对象声明 new const。

您可以避免const使用这些策略为每个声明编写。可能还有更多,具体取决于您的确切用例。

const arr = [1, 2, 3];
const [arr2, arr3] = [[...arr, 4], [...arr, 5]];

console.log(arr2);
console.log(arr3);

const
  arr = [1, 2, 3],
  arr2 = [...arr, 4],
  arr3 = [...arr, 5];
 
console.log(arr2);
console.log(arr3);


推荐阅读