我正在使用無法在服務器端修改的數據集。所以我試圖在客戶端設置本地數據模型,以便在更新部分數據時輕鬆遍歷模型。使用Immutable.js從嵌套列表創建鍵控映射
因此,我試圖從多級地圖(包括列表)創建多級地圖,這些地圖包括地圖等(請參閱本文末尾的示意圖)。
我想要得到的是包含其他地圖的地圖,其中包含的地圖的關鍵是對象的值(請參閱本文末尾的示意圖)。
我得到它的第一級工作:
const firstLevel = data.toMap().mapKeys((key, value) => value.get('value'));
看到它在這裏的行動:https://jsfiddle.net/9f0djcb0/4/
但有一個最大的3級嵌套數據的是,我不能讓我的回頭看看如何完成轉換。任何幫助感謝!
示意圖數據集:
// This is what I got
const dataset = [
{
field: 'lorem',
value: 'ipsum',
more: [
{
field: 'lorem_lvl1',
value: 'ispum_lvl1',
more: [
{
field: 'lorem_lvl2',
value: 'ispum_lvl2',
more: [
{
field: 'lorem_lvl3',
value: 'ispum_lvl3',
}
]
}
]
}
]
},
{
field: 'glorem',
value: 'blipsum'
},
{
field: 'halorem',
value: 'halipsum'
}
];
這就是我想去的地方:
// This is what I want
const dataset_wanted = {
ipsum: {
field: 'lorem',
value: 'ipsum',
more: {
lorem_lvl1: {
field: 'lorem_lvl1',
value: 'ispum_lvl1',
more: {
lorem_lvl2: {
field: 'lorem_lvl2',
value: 'ispum_lvl2',
more: {
lorem_lvl3: {
field: 'lorem_lvl3',
value: 'ispum_lvl3',
}
}
}
}
}
}
},
glorem: {
field: 'glorem',
value: 'blipsum'
},
halorem: {
field: 'halorem',
value: 'halipsum'
}
};
嗨@Coder,感謝您的快速回答。 我知道按需檢索嵌套數據的想法。但是我試圖實現的不僅僅是「讀取」嵌套結構,而是將它從示例A(//這是我得到的)轉換爲示例B(//這是我想要的)。 我不太清楚getIn()的幫助。你能解釋一下更深一點嗎? – derdaani