簡體   English   中英

Javascript object map 計算值在一定范圍內的鍵的數量

[英]Javascript object map calculate the count of keys with values in a certain range

我的問題是我想創建一個新的 object ,其中包含具有某個范圍內的值的鍵的計數。 我認為對我來說闡明這個問題的最佳方式是如下說明。

我的數據集如下:

a = 從 1 到 1000 的有序數字序列,例如 id/行號

b = 1-100 之間的任意隨機數

{"a":1,"b":59},
{"a":2,"b":88},
{"a":3,"b":69},
{"a":4,"b":28},
{"a":5,"b":75},
{"a":6,"b":78}
...]

現在我想創建一個算法,計算頻率(b)在例如:0-9 范圍內的 a(行號)的數量,並將該值放入一個新的 object 中,理想情況下看起來像

c 代表該范圍(0-9、1-19、20-29...90-100)

和 d 表示 id (a) 的計數,頻率 (b) 在范圍 (c)

[
{"c":1, "d":10},
{"c":2, "d":13},
{"c":3, "d":20},
...
{"c":10, "d":6}
]

我嘗試了一些不同的事情,但沒有得到想要的結果。 我還需要將該計數的結果放入一個新的 object Map 中,我不確定該怎么做。

dat = [
  { "ruid": 1, "id_frequency": 5 },
  { "ruid": 2, "id_frequency": 88 },
  { "ruid": 3, "id_frequency": 69 },
  { "ruid": 4, "id_frequency": 28 },
  { "ruid": 5, "id_frequency": 75 },
  { "ruid": 6, "id_frequency": 78 },
  { "ruid": 7, "id_frequency": 18 },
  { "ruid": 8, "id_frequency": 90 },
  { "ruid": 9, "id_frequency": 22 }
];

var freq = Object.keys(dat).filter(function(key){
   return ( dat[key] > 0 && dat[key] <10 );
}).length;

您可以將一個數組和該值的十分之一的 integer 值作為計數的索引。

 var data = [{ a: 1, b: 59 }, { a: 2, b: 88 }, { a: 3, b: 69 }, { a: 4, b: 28 }, { a: 5, b: 75 }, { a: 6, b: 78 }], result = data.reduce((r, { b }) => { r[Math.floor(b / 10)].d++; return r; }, Array.from({ length: 10 }, (_, i) => ({ c: i + 1, d: 0}))) console.log(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM