將具有重複值的陣列轉換為帶有重複出現次數的物件 - JavaScript
假設我們有一個包含一些重複條目的陣列 string,如下所示:
const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California'];
我們需要編寫一個 JavaScript 函式,該函式採用一個這樣的陣列。然後,我們的函式應該構造一個物件陣列,其中包含每個唯一條目的物件以及一個 "count" 屬性,該屬性包含其在原始陣列中的計數。
因此,上述陣列的最終輸出看起來應如下所示:
const output = [ {'name':'California', 'count':2}, {'name':'Texas', 'count':3}, {'name':'New York', 'count':1}, {'name':'Missouri', 'count':1}, {'name':'New Mexico', 'count':1}, ];
示例
程式碼如下:
const arr = ['California','Texas','Texas','Texas','New York','Missouri','New Mexico','California']; const findOccurrences = (arr = []) => { const res = []; arr.forEach(el => { const index = res.findIndex(obj => { return obj['name'] === el; }); if(index === -1){ res.push({ "name": el, "count": 1 }) } else{ res[index]["count"]++; }; }); return res; }; console.log(findOccurrences(arr));
輸出
控制檯中的輸出將如下所示:
[ { name: 'California', count: 2 }, { name: 'Texas', count: 3 }, { name: 'New York', count: 1 }, { name: 'Missouri', count: 1 }, { name: 'New Mexico', count: 1 } ]
廣告