如何使多ID数组对象成为一体 [英] How to make multi id array object to all in one
本文介绍了如何使多ID数组对象成为一体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在与一些wordpress项目一起工作,该项目关于按术语类别搜索巡回项目,而我使用jQuery ui catcomplete由我的数组完成,而catcomplete不支持,所以我想将数组转换为JSON对象 现在这是我的数组:
I working with some wordpress project this project about searching tour by terms category and this i use jQuery ui catcomplete by my array is not support by catcomplete so i want to convert my array to JSON object This my array now :
1:
1:{label: "Namibia", category: "Afrika"}
2:{label: "Sydafrika", category: "Afrika"}
3:{label: "Tanzania", category: "Afrika",}
4:{label: "Madagaskar", category: "Afrika"}
2:
1:{label: "Colombia", category: "Amerika"}
2:{label: "Kuba", category: "Amerika"}
3:{label: "Private: Peru", category: "Amerika"}
4:{label: "Panama", category: "Amerika"}
5:{label: "Costa Rica", category: "Amerika"}
3:
1:{label: "Private: Södra Indien", category: "Asien"}
2:{label: "Indonesien", category: "Asien"}
3:{label: "Filippinerna", category: "Asien"}
4:{label: "Indien", category: "Asien"}
5:{label: "Kambodja", category: "Asien"}
6:{label: "Vietnam", category: "Asien"}
7:{label: "Myanmar", category: "Asien"}
8:{label: "Sri Lanka", category: "Asien"}
9:{label: "Thailand", category: "Asien"}
我希望它像这样
data:{label: "Namibia", category: "Afrika"},
{label: "Sydafrika", category: "Afrika"},
{label: "Tanzania", category: "Afrika",},
{label: "Madagaskar", category: "Afrika"},
{label: "Colombia", category: "Amerika"},
{label: "Kuba", category: "Amerika"},
{label: "Private: Peru", category: "Amerika"},
{label: "Panama", category: "Amerika"},
{label: "Costa Rica", category: "Amerika"},
{label: "Private: Södra Indien", category: "Asien"},
{label: "Indonesien", category: "Asien"},
{label: "Filippinerna", category: "Asien"},
{label: "Indien", category: "Asien"},
{label: "Kambodja", category: "Asien"},
{label: "Vietnam", category: "Asien"},
{label: "Myanmar", category: "Asien"},
{label: "Sri Lanka", category: "Asien"},
{label: "Thailand", category: "Asien"},
谢谢.
推荐答案
您可以使用map
,reduce
和concat
使用map
将对象转换为2维数组.
Use map
to convert objects into 2 dimentional array.
使用reduce
循环遍历数组,并使用concat
Use reduce
to loop thru the array and merge it using concat
let data = {
1: {
1: {
label: "Namibia",
category: "Afrika"
},
2: {
label: "Sydafrika",
category: "Afrika"
},
3: {
label: "Tanzania",
category: "Afrika"
},
4: {
label: "Madagaskar",
category: "Afrika"
},
},
2: {
1: {
label: "Colombia",
category: "Amerika"
},
2: {
label: "Kuba",
category: "Amerika"
},
3: {
label: "Private: Peru",
category: "Amerika"
},
4: {
label: "Panama",
category: "Amerika"
},
5: {
label: "Costa Rica",
category: "Amerika"
},
},
3: {
1: {
label: "Private: Södra Indien",
category: "Asien"
},
2: {
label: "Indonesien",
category: "Asien"
},
3: {
label: "Filippinerna",
category: "Asien"
},
4: {
label: "Indien",
category: "Asien"
},
5: {
label: "Kambodja",
category: "Asien"
},
6: {
label: "Vietnam",
category: "Asien"
},
7: {
label: "Myanmar",
category: "Asien"
},
8: {
label: "Sri Lanka",
category: "Asien"
},
9: {
label: "Thailand",
category: "Asien"
},
}
};
let newData = Object.values(data).map(v => {
let x = [];
for (let k in v) x.push(v[k]);
return x;
}).reduce((c, v) => {
c = c.concat(v);
return c;
}, []);
console.log(newData);
您也可以尝试使用较短的版本:
You can also try a shorter version:
let newData = Object.values(data).reduce((c, v) => c.concat(Object.values(v).map(i => i)),[]);
这篇关于如何使多ID数组对象成为一体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文