immutable.jsを使用して、JSONオブジェクトのフラグメントを他の部分に更新/置換したいとします。immutable.js - 複雑なオブジェクトとネストされたオブジェクトのノードを置き換えます
以下の例を見てください。もっと複雑でネストされたオブジェクトを見ることができます。 "id": "F"
のノードの代わりに、別の編集済みノードで/ updateを置き換えたいとします。
docsによると、何とかkeyPath
を配列として取得し、setIn(keyPath: Array<any>, value: any): Map<K, V>
関数に渡す必要があります。
私は何とかF keypath:['children'、2、 'children'、0、 'children'、0]を見つける必要があります。
これは簡単な例です。私の場合、私のキーパスははるかに複雑な階層を持っています。どのようにimmutable.jsやプレーンJSによってそれを行うには?このアプローチは正しいですか?可能な場合はimmutable.js関数を使用して同じ動作を実現するには、より洗練されたソリューションですか?
敬具、
ラファウ
例:
{
"id": "A",
"children": [
{
"id": "B",
"children": [
]
},
{
"id": "C",
"children": [
]
},
{
"id": "D",
"children": [
{
"id": "E",
"children": [
{
"id": "F", // THIS NODE WILL BE UPDATED
"children": [
]
}
]
},
{
"id": "G",
"children": [
]
}
]
}
]
}
ありがとうございました。あなたの答えの後、配列をkeyPathとして返す私自身の再帰関数を書くことに決めました。これで、setIn、updateInなどのimmutable.js関数をかなり簡単に使用できます。しかし、私はまだ同じ結果を得るために、.find()、findIndex()、またはfatteningデータのようなimmutable.js関数をどう使うことができるのだろうかと思います。私はこれらの方法の中で最高の性能を持っているのだろうかと思います。 –