Javascript 如何迭代和替换JSON
我对这个json/数组非常陌生,下面的数据来自一个表,我需要将它移植到另一个表,这需要我根据id最高的国家进行排序。。。 加载的国家是动态的。。。 如果有人能告诉我如何将所有国家分组为“国家”,并推送至正确的数据,我将不胜感激[i]Javascript 如何迭代和替换JSON,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我对这个json/数组非常陌生,下面的数据来自一个表,我需要将它移植到另一个表,这需要我根据id最高的国家进行排序。。。 加载的国家是动态的。。。 如果有人能告诉我如何将所有国家分组为“国家”,并推送至正确的数据,我将不胜感激[i] var data = [ {"Product": "DESKTOP", "Type": "APPLE" , "CN": "", "IN": "", "SG": "20"}, {"Product": "DESKTOP", "Type":
var data = [
{"Product": "DESKTOP", "Type": "APPLE" , "CN": "", "IN": "", "SG": "20"},
{"Product": "DESKTOP", "Type": "DELL" , "CN": "", "IN": "", "SG": "20"},
{"Product": "LAPTOP", "Type": "XXX", "CN": "", "IN": "90", "SG": "28"},
{"Product": "MOBILE", "Type": "XXX","CN": "1","IN": "","SG": "28"},
{"Product": "TABLET", "Type": "XXX","CN": "13","IN": "","SG": "238"}
]
what_i_need = [
{"Product": "DESKTOP",
"Type": "APPLE",
"Country": [
{"country": "CN", "id": ""}
{"country": "IN", "id": ""}
{"country": "SG", "id": "20"}
]},
...
...
]
我试着做循环,但结果是这样的
[{"country": "CN", "id": ""}
{"country": "IN", "id": ""}
{"country": "SG", "id": "20"}
{"country": "CN", "id": ""}
{"country": "IN", "id": ""}
{"country": "SG", "id": "20"}
您可以使用该函数更改数组格式
var数据=[{
“产品”:“桌面”,
“类型”:“苹果”,
“CN”:“,
“在“:”中,
“SG”:“20”
},
{
“产品”:“桌面”,
“类型”:“戴尔”,
“CN”:“,
“在“:”中,
“SG”:“20”
},
{
“产品”:“笔记本电脑”,
“类型”:“XXX”,
“CN”:“,
“IN”:“90”,
“SG”:“28”
},
{
“产品”:“手机”,
“类型”:“XXX”,
“CN”:“1”,
“在“:”中,
“SG”:“28”
},
{
“产品”:“平板电脑”,
“类型”:“XXX”,
“CN”:“13”,
“在“:”中,
“SG”:“238”
}
];
var fixedKeys=[“产品”,“类型”];
var结果=data.map(函数(项){
变量x={
产品:项目,产品,,
类型:item.Type,
国家:[]
};
对于(项目中的var国家/地区){
if(项目hasOwnProperty(国家)和&!fixedKeys.includes(国家))
x、 乡村推({
国家:国家,,
编号:项目[国家]
});
}
返回x;
});
控制台日志(结果)代码>这是解决方案
var数据=[
{“产品”:“桌面”,“类型”:“苹果”,“CN”:“IN”:“SG”:“20”},
{“产品”:“桌面”,“类型”:“戴尔”,“CN”:“IN”:“SG”:“20”},
{“产品”:“笔记本电脑”,“类型”:“XXX”,“CN”:“IN”:“90”,“SG”:“28”},
{“产品”:“移动”、“类型”:“XXX”、“CN”:“1”、“IN”:“SG”:“28”},
{“产品”:“片剂”、“类型”:“XXX”、“CN”:“13”、“IN”:“SG”:“238”}
];
var outputData=[];
$。每个(数据、功能(i){
var temp={};
var tempCountry={};
$。每个(数据[i],功能(键){
如果(键==“产品”| |键==“类型”){
temp[key]=数据[i][key];
}否则{
tempCountry[“国家”]=键;
tempCountry[“id”]=数据[i][key];
如果(临时类型[“国家”]=“未定义”){
临时[“国家”]=[];
}
临时[“国家”]。推送(临时国家);
tempCountry={};
}
});
输出数据推送(温度);
});
console.log(outputData)代码>
将您的代码放入,生成数组,并将帮助您更好地共享您的代码和尝试?当我尝试生成数组时,h77&Shiladitya发布了答案,非常感谢!我希望我也能给shiladitya打勾,但h77打得最快。谢谢!非常感谢你!你救了我的命!非常感谢你!你救了我的命!非常感谢。一旦我有足够的发言权,我将投票支持你的回答!谢谢你的帮助