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

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

如何使用javascript(過濾器)來計算對象值的頻率?

如何使用javascript(過濾器)來計算對象值的頻率?

UYOU 2022-10-21 09:32:21
這是我必須從中獲取數據的url。我想要 postIds 的頻率。我如何使用方法(map、filter 或 reduce)來做到這一點。我已經使用循環完成了??梢栽诟玫姆椒??請幫助..<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <script>  fetch('http://jsonplaceholder.typicode.com/comments')  .then(    function(response) {      if (response.status !== 200) {        console.log('Looks like there was a problem. Status Code: ' +          response.status);        return;      }      response.json().then(function(data)       {          var na=[];          for(var i=1;i<=100;i++)          {            var a= data.filter(ab=> {          return ab.postId==i;});         // console.log(a);           na.push({PostId:i,frequency:a.length});          }          console.log(na);      }  )})  .catch(function(err) {    console.log('Fetch Error :-S', err);  });    </script></body></html>
查看完整描述

3 回答

?
HUX布斯

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

我希望這有幫助


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 (let item of cars){

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

}


console.log(counterObj);


查看完整回答
反對 回復 2022-10-21
?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您可以使用其頻率reduce生成地圖。PostId


function mapFrequency(data) {

     return data.reduce((map, datum) => {

        if (map[datum.postId]) {

          map[datum.postId] += 1;

        } else {

          map[datum.postId] = 1 

        }

        return map;

        

     }, {})

}

此函數將創建一個對象,其鍵為 as postId,值為其頻率。


如果你想在你的樣本中生成一個數組,你可以這樣做


 const frequencies = mapFrequency(data);

 const result = Object.keys(frequencies).map((id) => {

   return {

      PostId: id, 

      frequency: frequencies[id]

   }

  });


查看完整回答
反對 回復 2022-10-21
?
慕沐林林

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

使用 reduce,您可以執行以下操作:


const na = data.reduce((acc, el) => {

  acc[el.postId] = acc[el.postId] ? acc[el.postId] + 1 : 1;

  return acc;

}, {});

與@sonEtLumiere 建議的幾乎相同,但與reduce



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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