我有一个数组,例如
var a = [1,4,6,1,1,1,1];
我需要比较数组中的每个元素以获得相似性。如果它们都相似,我需要返回true
,如果其中一个或多个不同,则应返回false
很高兴得到答案。
这是通过使用Set
。
var a = [1,1,1,1];
var b = [1,2,3,4,5,1,2,3];
function check(arr) {
console.log([...new Set(arr)].length == 1 ? true : false);
}
check(a);
check(b);
如果它们都需要相同,则可以检查数组中的所有内容是否与使用filter
和length
等于第一个元素。列表中任何元素过滤的阵列的长度应等于原始长度。
const a = [1, 4, 1, 1, 1, 1, 1];
function similarity(arr) {
let firstItem = arr[0];
return arr.filter(elements => elements == firstItem).length != arr.length ? false : true;
}
console.log(similarity(a));
您可以使用every
方法。
来自mdn
每个()方法测试数组中的所有元素是否通过 通过提供的功能实现的测试。
var notsimilar= [1,4,6,1,1,1,1];
var similar= [2,2,2];
console.log(notsimilar.every((x,i,a) => a[i] === a[0]));
console.log(similar.every((x,i,a) => a[i] === a[0]));