找出陣列中重複次數最少的項 JavaScript
我們要求編寫一個 JavaScript 函式,該函式採用一個可能包含重複值的字面量陣列。
該函式應返回一個數組,其中包括重複次數最少的元素。
例如− 如果輸入陣列為 -
const arr = [1,1,2,2,3,3,3];
則輸出應為 -
const output = [1, 2];
因為 1 和 2 的重複次數最少(2)
範例
const arr = [1,1,2,2,3,3,3];
const getLeastDuplicateItems = (arr = []) => {
const hash = Object.create(null);
let keys, min; arr.forEach(el => {
hash[el] = hash[el] || {
value: el, count: 0 };
hash[el].count++; });
keys = Object.keys(hash);
keys.sort(function (el, b) {
return hash[el].count - hash[b].count; });
min = hash[keys[0]].count;
return keys. filter(el => {
return hash[el].count === min;
}).
map(el => {
return hash[el].value;
});
}
console.log(getLeastDuplicateItems(arr));輸出
且控制檯中的輸出為 -
[ 1, 2 ]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP