比较阵列中的元素的相似性JS



我有一个数组,例如

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);

如果它们都需要相同,则可以检查数组中的所有内容是否与使用filterlength等于第一个元素。列表中任何元素过滤的阵列的长度应等于原始长度。

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]));

最新更新