杰森1
{
"ordering_data": [
{
"order": 0,
"section_menu_id": 3
},
{
"order": 1,
"section_menu_id": 1
},
{
"order": 2,
"section_menu_id": 6
},
]
}
杰森2
[
3,
7,
4,
]
预期结果
{
"ordering_data": [
{
"order": 3,
"section_menu_id": 3
},
{
"order": 7,
"section_menu_id": 1
},
{
"order": 4,
"section_menu_id": 6
},
]
}
我有2个json文件。有人可以告诉我如何将数据结构更改为预期结果。我尝试过使用map,但对我来说有点困惑。需要帮助。谢谢。
答案 0 :(得分:1)
您可以使用Array.prototype.map完成此操作。
在Array.map
上,通过引用,第二个参数表示数组的当前索引,因此可以基于该值,通过{{1}将second array value
分配给order
键}。
index
答案 1 :(得分:0)
我认为您正在寻找类似以下代码段的内容。
这假设两个对象的长度相等,并且我们正在修改原始对象。
首先,循环数组,并将原始对象中的顺序替换为数组中的数字。
练习创建一个新对象,而不是修改原始的obj1
var obj1 = {
"ordering_data": [
{
"order": 0,
"section_menu_id": 3
},
{
"order": 1,
"section_menu_id": 1
},
{
"order": 2,
"section_menu_id": 6
},
]
};
var myArray = [
3,
7,
4,
];
for(var i = 0; i<myArray.length; i++){
obj1.ordering_data[i].order = myArray[i];
}
console.log(obj1);
答案 2 :(得分:0)
这可能有帮助。
j1 = {
"ordering_data": [
{
"order": 0,
"section_menu_id": 3
},
{
"order": 1,
"section_menu_id": 1
},
{
"order": 2,
"section_menu_id": 6
},
]
};
j2 = [
3,
7,
4,
]
for(i=0; i<j1.ordering_data.length; i++ ){
j1.ordering_data[i].order = j2[i]
}