第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何計算數(shù)組中同名對象的數(shù)量?

如何計算數(shù)組中同名對象的數(shù)量?

達令說 2022-10-08 17:37:35
我有這個數(shù)組并試圖獲取具有相同name屬性的對象的計數(shù)。我怎樣才能做到這一點?也許以現(xiàn)代“es6”方式let cars = [    {id: 1, name: 'Mercedes', year: '2015'},    {id: 2, name: 'Mercedes', year: '2000'},    {id: 3, name: 'BMW', year: '2010'},    {id: 4, name: 'BMW', year: '2004'},    {id: 5, name: 'Volvo', year: '2012'},    {id: 6, name: 'Volvo', year: '2014'} ];
查看完整描述

5 回答

?
森欄

TA貢獻1810條經(jīng)驗 獲得超5個贊

這是適合您的解決方案:


let cars = [

  { id: 1, name: "Mercedes", year: "2015" },

  { id: 2, name: "Mercedes", year: "2000" },

  { id: 3, name: "BMW", year: "2010" },

  { id: 4, name: "BMW", year: "2004" },

  { id: 5, name: "Volvo", year: "2012" },

  { id: 6, name: "Volvo", year: "2014" },

];


let numbers = cars.reduce((acc, child) => {

  if (!acc[child.name]) {

    acc[child.name] = 0;

  }

  acc[child.name]++;

  return acc;

}, {});


console.log(numbers);


查看完整回答
反對 回復(fù) 2022-10-08
?
千巷貓影

TA貢獻1829條經(jīng)驗 獲得超7個贊

let cars = [

  { id: 1, name: "Mercedes", year: "2015" },

  { id: 2, name: "Mercedes", year: "2000" },

  { id: 3, name: "BMW", year: "2010" },

  { id: 4, name: "BMW", year: "2004" },

  { id: 5, name: "Volvo", year: "2012" },

  { id: 6, name: "Volvo", year: "2014" },

  { id: 7, name: "Volvo", year: "2012" },

  { id: 8, name: "Volvo", year: "2014" },

  { id: 9, name: "Volvo", year: "2012" }

];


let result = cars.reduce((acc, child, index) => {

    const indexFinded = acc.findIndex(el => el.name==child.name && el.year ==child.year);


    const result = {}


    if(indexFinded == -1) {

        result.name = child.name;

        result.year = child.year;

        result.qtd = 1;

        acc.push(result)

    } else {

        acc[indexFinded].qtd += 1

    }


    return acc;

}, []);


console.log(result);


查看完整回答
反對 回復(fù) 2022-10-08
?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

let cars = [

    {id: 1, name: 'Mercedes', year: '2015'},

    {id: 2, name: 'Mercedes', year: '2000'},

    {id: 3, name: 'BMW', year: '2010'},

    {id: 4, name: 'BMW', year: '2004'},

    {id: 5, name: 'Volvo', year: '2012'},

    {id: 6, name: 'Volvo', year: '2014'} 

];


let obj = {}


cars.forEach((item) => {

  //console.log(obj[item.name]) this return as undefined

  if (!obj[item.name]) {

    obj[item.name] = 1;

  } else {

    obj[item.name] += 1;

  }

})


console.log(obj)


查看完整回答
反對 回復(fù) 2022-10-08
?
呼啦一陣風

TA貢獻1802條經(jīng)驗 獲得超6個贊

您可以使用一個簡單的reduce函數(shù),該函數(shù)將遍歷每個對象并將計數(shù)加一


let cars = [

  { id: 1, name: "Mercedes", year: "2015" },

  { id: 2, name: "Mercedes", year: "2000" },

  { id: 3, name: "BMW", year: "2010" },

  { id: 4, name: "BMW", year: "2004" },

  { id: 5, name: "Volvo", year: "2012" },

  { id: 6, name: "Volvo", year: "2014" }

];


let count = cars.reduce((acc, child) => {

  acc[child.name] = (acc[child.name] || 0) + 1;

  return acc;

}, {});


console.log(count);


查看完整回答
反對 回復(fù) 2022-10-08
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超2個贊

let counterObj = {}


let cars = [

    {id: 1, name: 'Mercedes', year: '2015'},

    {id: 2, name: 'Mercedes', year: '2000'},

    {id: 3, name: 'BMW', year: '2010'},

    {id: 4, name: 'BMW', year: '2004'},

    {id: 5, name: 'Volvo', year: '2012'},

    {id: 6, name: 'Volvo', year: '2014'} 

];



for (property of cars){

    counterObj[property.name] = 1 + (counterObj[property.name] || 0)

}


console.log(counterObj)


查看完整回答
反對 回復(fù) 2022-10-08
  • 5 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號