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

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

在多個子數組中使用腳本減少函數

在多個子數組中使用腳本減少函數

喵喔喔 2022-09-29 10:22:54
我試圖計算值計數,如果通用=== 在多個子數組下為真,但我沒有成功如何使用java腳本減少函數來獲得總計4總和應為 4,因為只有 4 個對象具有共同點 === trueconst obj = {  "A": [    [      {        "count": "1.00",        "common": false      },{        "count": "1.00",        "common": true      }    ],    [      {        "count": "1.00",        "common": false      },      {        "count": "1.00",        "common": true      }    ]  ],  "B": [    [      {        "count": "1.00",        "common": false      },{        "count": "1.00",        "common": true      }    ],    [      {        "count": "1.00",        "common": false      },      {        "count": "1.00",        "common": true      }    ]  ]};let total = Object.values(obj).reduce((acc, value) => acc + value.reduce((a,b) => a+b.reduce((c,d) => c + (d.common) ? parseInt(d.count) : 0,0),0), 0); 
查看完整描述

3 回答

?
慕容708150

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

您將嵌套數組作為對象的值,您需要兩個內部循環來獲取所需的求和屬性


const

    obj = { A: [[{ count: "1.00", common: false }, { count: "1.00", common: true }], [{ count: "1.00", common: false }, { count: "1.00", common: true }]], B: [[{ count: "1.00", common: false }, { count: "1.00", common: true }], [{ count: "1.00", common: false }, { count: "1.00", common: true }]] },

    total = Object

        .values(obj)

        .reduce((r, outer) => {

            outer.forEach(inner =>

                inner.forEach(({ common, count }) => r += common ? +count : 0)

            );

            return r;

        }, 0);


console.log(total); // 4


查看完整回答
反對 回復 2022-09-29
?
有只小跳蛙

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

另一種方法是使用以下方法拼合數組,然后應用:concatreduce


const obj = {

  "A": [

    [{"count": "1.00", "common": false}, {"count": "1.00", "common": true}],

    [{"count": "1.00", "common": false}, {"count": "1.00", "common": true}]

  ],

  "B": [

    [{"count": "1.00", "common": false}, {"count": "1.00", "common": true}],

    [{"count": "1.00", "common": false}, {"count": "1.00", "common": true}]

  ]

};


const sum = [].concat(...([].concat(...Object.values(obj))))

  .reduce(( acc, cur ) => acc + (cur.common ? +cur.count : 0), 0)


console.log(`Total count = ${sum}`);


查看完整回答
反對 回復 2022-09-29
?
隔江千里

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

這是另一種方式


const obj = {

  "A": [

    [

      {

        "count": "1.00",

        "common": false

      },{

        "count": "1.00",

        "common": true

      }

    ],

    [

      {

        "count": "1.00",

        "common": false

      },

      {

        "count": "1.00",

        "common": true

      }

    ]

  ],

  "B": [

    [

      {

        "count": "1.00",

        "common": false

      },{

        "count": "1.00",

        "common": true

      }

    ],

    [

      {

        "count": "1.00",

        "common": false

      },

      {

        "count": "1.00",

        "common": true

      }

    ]

  ]

};


let total = 0;

Object.values(obj).forEach(c => c.forEach(arr => total += arr.filter(o => o.common).length));

console.log("Total: " + total);


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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