将两个嵌套的 json 对象与 javascript 结合起来,并用一个键循环遍历它

我有几个 json 对象(obj1、obj2...),每个对象都取自 .txt 文件:


{

  "countries": [

    {

      "Country name": "China",

      "Flag": "CN",

      "Population": 1395380000,

      "undefined": "#688144"

    }, ... ]}


{

  "countries": [

    {

      "Country name": "India",

      "Flag": "IN",

      "Population": 1338677000,

      "undefined": "#B78A31"

    }, ...]}

等等。现在我想像这样组合它们:


{

  "countries": [

    {

      "Country name": "China",

      "Flag": "CN",

      "Population": 1395380000,

      "undefined": "#688144"

    },

 {

      "Country name": "India",

      "Flag": "IN",

      "Population": 1338677000,

      "undefined": "#B78A31"

    },

 ... ]}

所以我可以像这样遍历数据:


let obj1 = {}; //saved Data From Txt1;

let obj2 = {}; //saved Data From Txt2

...

let obj = combined?


for (var key in obj.countries) {

var num1 = obj.countries[key].Population+popholder;

if (target >= popholder && target <= num1) {

  var country = obj.countries[key]['Country name'];

  var testas = document.getElementById("countryname")

}}

我怎么能做到这一点?


ITMISS
浏览 159回答 3
3回答

动漫人物

只需连接数组:const obj1 = {&nbsp; &nbsp; "countries": [{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Country name": "China",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Flag": "CN",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Population": 1395380000,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "undefined": "#688144"&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; ]};const obj2 = {&nbsp; &nbsp; "countries": [{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Country name": "India",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Flag": "IN",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "Population": 1338677000,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "undefined": "#B78A31"&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; ]};const result = {&nbsp; &nbsp; countries: [...obj1.countries, ...obj2.countries]};console.log(result);

精慕HU

您可以使用创建一个具有相同countries属性的新对象Array#concat并将所有国家/地区数组合并为一个:const obj1 = {&nbsp; "countries": [{&nbsp; &nbsp; "Country name": "China",&nbsp; &nbsp; "Flag": "CN",&nbsp; &nbsp; "Population": 1395380000,&nbsp; &nbsp; "undefined": "#688144"&nbsp; }, /* ... */ ]};const obj2 = {&nbsp; "countries": [{&nbsp; &nbsp; "Country name": "India",&nbsp; &nbsp; "Flag": "IN",&nbsp; &nbsp; "Population": 1338677000,&nbsp; &nbsp; "undefined": "#B78A31"&nbsp; }, /* ... */ ]};const obj3 = {&nbsp; "countries": [{&nbsp; &nbsp; "Country name": "Sealand",&nbsp; &nbsp; "Flag": "",&nbsp; &nbsp; "Population": 27,&nbsp; &nbsp; "undefined": "#0000FF"&nbsp; }, /* ... */ ]};const combined = {&nbsp;&nbsp; countries: [].concat(&nbsp; &nbsp; obj1.countries,&nbsp;&nbsp; &nbsp; obj2.countries,&nbsp;&nbsp; &nbsp; obj3.countries&nbsp; )};console.log(combined);如果你有一个对象数组,你可以结合Array#map扩展语法来提取countries数组并将它们组合成一个:const obj1 = { "countries": [{ "Country name": "China", "Flag": "CN", "Population": 1395380000, "undefined": "#688144" }, /* ... */ ]};const obj2 = { "countries": [{ "Country name": "India", "Flag": "IN", "Population": 1338677000, "undefined": "#B78A31" }, /* ... */ ]};const obj3 = { "countries": [{ "Country name": "Sealand", "Flag": "", "Population": 27, "undefined": "#0000FF" }, /* ... */ ]};const objArr = [obj1, obj2, obj3];const combined = {&nbsp;&nbsp; combined: [].concat(&nbsp; &nbsp; ...objArr.map(x => x.countries)&nbsp; )};console.log(combined)

胡说叔叔

你可以push所有数组合二为一。const obj1 = {&nbsp; "countries": [&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; "Country name": "China",&nbsp; &nbsp; &nbsp; "Flag": "CN",&nbsp; &nbsp; &nbsp; "Population": 1395380000,&nbsp; &nbsp; &nbsp; "undefined": "#688144"&nbsp; &nbsp; }, ]}const obj2 = {&nbsp; "countries": [&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; "Country name": "India",&nbsp; &nbsp; &nbsp; "Flag": "IN",&nbsp; &nbsp; &nbsp; "Population": 1338677000,&nbsp; &nbsp; &nbsp; "undefined": "#B78A31"&nbsp; &nbsp; },]};const res = [obj1, obj2, /*...*/]&nbsp; .reduce((acc,{countries})=>(acc.countries.push(...countries),acc), {countries: []});console.log(res);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript