4 回答

TA貢獻1818條經驗 獲得超7個贊
實現這一點的一種方法是構建數組中每個值的計數數組。然后可以檢查此列表以確保其長度為 2,最小計數為 1:
const countDuplicate = (array) => {
let counts = Object.values(array.reduce((c, v) =>
(c[v] = (c[v] || 0) + 1, c), {}));
return counts.length == 2 && Math.min(...counts) == 1
}
console.log(countDuplicate([1,2,2,2]));
console.log(countDuplicate([4,4,2,4]));
console.log(countDuplicate([1,1,6]));
console.log(countDuplicate([2,2,4,4]));
console.log(countDuplicate([1,2]));

TA貢獻1859條經驗 獲得超6個贊
這是使用Set它比較原始數組和刪除重復數組的長度:
const hasDuplicates = (arr = []) => {
const noDuplicates = [...new Set(arr)];
return arr.length !== noDuplicates.length;
};
console.log(hasDuplicates([1,2,3]));
console.log(hasDuplicates([1,2,3,1]));

TA貢獻1772條經驗 獲得超6個贊
如果您只是想檢查除了數組中的一個值之外所有值是否都相同,您可以使用它。
function oneMultiple(array) {
const set = new Set(array)
return set.size === 2
}

TA貢獻1851條經驗 獲得超5個贊
如果你想簡單地使用一個值使用這個
function oneMultiple(array) {
const set = new Set(array)
return set.size === 2
}
添加回答
舉報