用 increment/decrement 框编辑变量中的参数并保存

Edit parameter in variable with increment/decrement box and save it

我有一个带有多个参数 A、B、L、M 的变量 K。我正在尝试将 increment/decrement 框放入“A”,以便可以将其更改为更大或更小的数字。

如果可能,它应该保持更改(保存?)以供下次加载或加载时使用。

  { L: 34, M: 56, A: 64, B: 65 },    
  { L: 35, M: 55, A: 47, B: 89 },
  { L: 36, M: 54, A: 85, B: 62 },
  { L: 37, M: 53, A: 23, B: 11 }, ];

由于问题是用 reactjs 标记的,我假设这个对象数组处于组件状态,所以我们必须在不改变原始数组的情况下这样做。

最安全的方法是使用 Array.prototype.

中的 map() 方法

示例:

const K = [{ L: 34, M: 56, A: 64, B: 65 }, { L: 35, M: 55, A: 47, B: 89 }];
const newArray = K.map(element => ({...element, A: element.A + 1}));
console.log(newArray);
//[{ L: 34, M: 56, A: 65, B: 65 }, { L: 35, M: 55, A: 48, B: 89 }]

现在解释一下。 Map 是一种将函数作为参数的方法,其中第一个参数是数组每个索引中的实际值,returns 是它所在位置的新值。 ({...element, A: element.A + 1}) 中所做的是用“元素”中的属性填充对象,然后 属性 A 被 element.A + 1 的值覆盖。之后它返回为一个新的价值。每个键都发生相同的情况。 最终结果是一个新的数组,每个A增加1并赋值给newArray。

如果它必须保留在会话中,只需将其保留在 sessionStorage 中即可。

有用的链接:

https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map