亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將兩個嵌套的 json 對象與 javascript 結合起來,并用一個鍵循環遍歷它

將兩個嵌套的 json 對象與 javascript 結合起來,并用一個鍵循環遍歷它

ITMISS 2022-12-18 16:35:49
我有幾個 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")}}我怎么能做到這一點?
查看完整描述

3 回答

?
動漫人物

TA貢獻1815條經驗 獲得超10個贊

只需連接數組:


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 result = {

    countries: [...obj1.countries, ...obj2.countries]

};


console.log(result);


查看完整回答
反對 回復 2022-12-18
?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

您可以使用創建一個具有相同countries屬性的新對象Array#concat并將所有國家/地區數組合并為一個:

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 combined = { 

  countries: [].concat(

    obj1.countries, 

    obj2.countries, 

    obj3.countries

  )

};


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 = { 

  combined: [].concat(

    ...objArr.map(x => x.countries)

  )

};


console.log(combined)



查看完整回答
反對 回復 2022-12-18
?
胡說叔叔

TA貢獻1804條經驗 獲得超8個贊

你可以push所有數組合二為一。


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 res = [obj1, obj2, /*...*/]

  .reduce((acc,{countries})=>(acc.countries.push(...countries),acc), {countries: []});

console.log(res);


查看完整回答
反對 回復 2022-12-18
  • 3 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號