Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何迭代和替换JSON_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript 如何迭代和替换JSON

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":

我对这个json/数组非常陌生,下面的数据来自一个表,我需要将它移植到另一个表,这需要我根据id最高的国家进行排序。。。 加载的国家是动态的。。。 如果有人能告诉我如何将所有国家分组为“国家”,并推送至正确的数据,我将不胜感激[i]

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打得最快。谢谢!非常感谢你!你救了我的命!非常感谢你!你救了我的命!非常感谢。一旦我有足够的发言权,我将投票支持你的回答!谢谢你的帮助