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

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

將對象內的多個數組合并為單個數組

將對象內的多個數組合并為單個數組

青春有我 2023-10-14 16:50:27
我的對象包含不同的數據類型,包括數組。我想連接我使用 foreach 和 concat 編寫的所有數組(在一個數組中)。有什么辦法可以有更好的解決方案,或者這是正確的?請參閱下面的片段。將數組 value3 和 value5 連接成單個數組。var Input = {    "value1": 10,    "value2": "abcd",    "value3": [        {            "v1": 100,            "v2": 89        },        {            "v1": 454,            "v2": 100        }    ],    "value4": "xyz",    "value5": [        {            "v6": 1,            "v7": -8        },        {            "v1": 890,            "v2": 10        }    ]}   var OutputData = [];  let keys = Object.keys(Input);  keys.forEach(key => {    if (Array.isArray(Input[key])) {      try {        OutputData= OutputData.concat(Input[key])      } catch (error) {      }    }  });  console.log(OutputData)
查看完整描述

2 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

您可以使用Array.prototype.filter()withArray.prototype.flat()方法獲得更清晰的代碼。首先使用方法獲取所有值Object.values()。然后使用filter方法獲取數組,最后使用flat方法獲取所有子數組元素連接起來的新數組。


const input = {

  value1: 10,

  value2: 'abcd',

  value3: [

    {

      v1: 100,

      v2: 89,

    },

    {

      v1: 454,

      v2: 100,

    },

  ],

  value4: 'xyz',

  value5: [

    {

      v6: 1,

      v7: -8,

    },

    {

      v1: 890,

      v2: 10,

    },

  ],

};


const ret = Object.values(input)

  .filter((x) => Array.isArray(x))

  .flat();

console.log(ret);


查看完整回答
反對 回復 2023-10-14
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

我認為讀起來可能會更清晰一些:


var input = {

  "value1": 10,

  "value2": "abcd",

  "value3": [{

      "v1": 100,

      "v2": 89

    },

    {

      "v1": 454,

      "v2": 100

    }

  ],

  "value4": "xyz",

  "value5": [{

      "v6": 1,

      "v7": -8

    },

    {

      "v1": 890,

      "v2": 10

    }

  ]

};


let res = [];


for (let k in input) {

  if (input.hasOwnProperty(k) && Array.isArray(input[k]))

    input[k].forEach(x => res.push(x));

}


console.log(res);


查看完整回答
反對 回復 2023-10-14
  • 2 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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