所以目前我正在生成应分组在一起形成以下 JSON 的记录:
{
"Monday": [{
"Index": "1",
"To": "200",
"From": "1200"
},
{
"Index": "2",
"To": "1300",
"From": "1400"
}
],
"Tuesday": [{
"Index": "1",
"To": "100",
"From": "200"
},
{
"Index": "2",
"To": "1000",
"From": "1200"
},
{
"Index": "3",
"To": "1300",
"From": "1500"
}
]
}
但目前,输出看起来更像是这样:
正如您所看到的,正在创建两条共享相同“索引”值的记录 - 这主要是因为我还没有弄清楚如何执行 where index = <index> insert
处理查找具有匹配索引的记录并向其添加属性。
目前,代码如下所示 -
var controlsJson;
//Assume two loops are running through different sets of values for "type". setting them to "To" and "From" pragmatically.
//Array building
if (controlsJson == null) {
controlsJson = [];
}
if (controlsJson[date] == null) {
controlsJson[date] = [];
}
var pusher = [];
pusher["Index"] = index;
pusher[type] = time;
controlsJson[date].push(pusher);
除了通过匹配索引键解决问题之外,还有其他方法可以改进此问题吗?
最佳答案
如果您使用以下格式表示数据,那么遍历会容易得多:
let state = {
Monday: {
1: {
To: 200,
From: 1200
},
2: {
To: 1300,
From: 1400
}
},
Tuesday: {
1: {
To: 100,
From: 200
},
2: {
To: 1000,
From: 1200
},
3: {
To: 1300,
From: 1500
}
}
}
state = { ...state, Tuesday: { ...state.Tuesday, 2: { To: 1500, From: 1400 } } }
console.log(state)
如果您不关心不变性,以下方法也可以:
let state = {
Monday: {
1: {
To: 200,
From: 1200
},
2: {
To: 1300,
From: 1400
}
},
Tuesday: {
1: {
To: 100,
From: 200
},
2: {
To: 1000,
From: 1200
},
3: {
To: 1300,
From: 1500
}
}
}
state["Tuesday"][2] = { To: 1500, From: 1400 };
console.log(state)
关于javascript - 根据匹配键合并两个多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42446747/