gpt4 book ai didi

javascript - ImmutableJS - 更新矩阵的单元格

转载 作者:行者123 更新时间:2023-11-29 21:15:11 27 4
gpt4 key购买 nike

我有这个矩阵:

const initialState = Immutable.fromJS({ 
board: [
['','',''],
['','',''],
['','','']
]
});

还有这个函数:

function cellClick(state,i,j) { 

const board = state.get('board');
var newBoard = board.map(function(arr) {
return arr.slice();
});
newBoard.set(i,j,'Hi');
alert(newBoard.get(i).get(j));
}
  1. 克隆矩阵(到 newBoard obj)
  2. 尝试为矩阵单元格设置一个值 - 不起作用
  3. 尝试输出包含单元格值的消息 - 不起作用

我尝试阅读 ImmutableJS 文档,但找不到任何关于在矩阵(ImmutableJS 的“列表”类型)中设置值的内容。

最佳答案

您可以使用 .setIn([i, j], 'Hi') 但是它不会改变值。这就是 ImmutableJS 的意义所在。它将返回原始数据结构的略微更改版本。如果您只是在一行中写入 setIn 并且不在任何地方分配结果,那么什么也不会发生。什么都不会改变。这就是重点。

getInsetIn 非常有用。如果某些内容不存在,他们还可以提供默认值。我也不认为你在那里需要 .slice() 。您根本不需要克隆任何东西。

这是一个不可变的数据结构,没有人可以更改它,这就是美妙的部分。

const initialState = Immutable.fromJS({ 
board: [
['','',''],
['','',''],
['','','']
]
});

const nextState = initialState.setIn(['board', 0, 0], 'Hi')

// Now nextState has 'Hi' in it's first column and row.
// initialState is still the same as it was, it is not changed.

关于javascript - ImmutableJS - 更新矩阵的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39705228/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com