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
}
添加回答
举报