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

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

計算嵌套對象數

計算嵌套對象數

鴻蒙傳說 2023-02-24 16:46:17
const json = [{  "order": 1111,  "items": [    {      "colour1": "red",      "colour2": "yellow",    },    {      "colour1": "red",      "colour2": "red",    },    {      "colour1": "red",      "colour2": "red",    }  ]},{  "order": 2222,  "items": [    {      "colour1": "black",      "colour2": "blue",      "colour3": "orange"    },    {      "colour1": "white",      "colour2": "red",      "colour3": "green",          }  ]}]Object.entries(json).forEach(([i, v]) => {    let count = [];    Object.entries(v.items).forEach(([j, k]) => {        if (k.colour2.includes('red')) {            count.push(k.colour2)        }    });    console.log(count, count.length) //length = [2, 1]});我覺得我寫的這段代碼不是過濾和計算長度的有效方法。目標是過濾某個值并得到結果。尋找替代方法和正確的 es6 方法來做到這一點。謝謝
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

使用reduce()

const json = [{"order":1111,"items":[{"colour1":"red","colour2":"yellow"},{"colour1":"red","colour2":"red"},{"colour1":"red","colour2":"red"}]},{"order":2222,"items":[{"colour1":"black","colour2":"blue","colour3":"orange"},{"colour1":"white","colour2":"red","colour3":"green"}]}]


const res = json.reduce((acc, order) => {

  let red = order.items.filter(color => color.colour2 === 'red')

  return red.length ? [...acc, red.length] : acc

}, [])


console.log(res)

注意:要獲得過濾后的結果而不是計數返回[...acc, red]



查看完整回答
反對 回復 2023-02-24
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

將有多種方法解決此問題,但如果您只對出現“colour2”:“red”感興趣。您也可以使用類似的東西。


 let json = [{"order":1111,"items":[{"colour1":"red","colour2":"yellow"},{"colour1":"red","colour2":"red"},{"colour1":"red","colour2":"red"}]},{"order":2222,"items":[{"colour1":"black","colour2":"blue","colour3":"orange"},{"colour1":"white","colour2":"red","colour3":"green"}]}]

   let count=[];

    for(let i of json){

    count.push(JSON.stringify(i).match(/"colour2":"red"/g).length)

    }

console.log(count);


查看完整回答
反對 回復 2023-02-24
?
烙印99

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

也許這里的效率不是最好的,但它是可以理解的代碼:


let count = [];

json.forEach((order, index) => {

  count[index] = [];

  order.items.forEach((item) => {

    if (item.colour2 === "red") {

      count[index].push(item.colour2);

    }

  });

});

console.log(count);


查看完整回答
反對 回復 2023-02-24
  • 3 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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