リストのリストがクエリや変更が難しいと思うのはなぜですか?長さ2の配列を[x, y]
のペアとして使用し、これをgetIn
,setIn
、およびupdateIn
のメソッドに渡すことができます。
let grid = Immutable.toJS([
['red', 'green'],
['blue', 'yellow']
]);
grid.getIn([0, 1]); // => 'green';
grid = grid.setIn([0, 1], 'purple');
grid.getIn([0, 1]); // => 'purple';
grid = grid.updateIn([0, 0], cell => cell.toUpperCase());
grid.getIn([0, 0]); // => 'RED';
それはmap(...)
と、グリッド内のすべてのセルにいくつかの関数を適用するのは簡単です:地図とよりトリッキーかもしれません
grid.map((row, x) => row.map(cell, y) => x + cell + y);
grid.get([1, 1]); // => '1yellow1'
ことの一つは、値の座標を見つけようとしています。
const x = grid.findIndex(row => row.contains('blue')); // => 1
const y = grid.get(x).indexOf('blue'); // => 0
grid.get([x, y]); // => blue
ニースの答え! 2つのレコードを比較できますか? – kharandziuk
あなたができることを確かめてください、Immutable.is() –
私は答えにこれを加えることが理にかなっていると思います – kharandziuk