首页 > 解决方案 > 如果我有三个相同的值,则在不知道值的情况下签入数组

问题描述

我有一个随机数数组,从 1 到 6。我怎么知道这个数组中是否有两个、三个或四个相同的数字?那个数字是多少?或者,如果我有两个数字,它们会出现两次?

array = [1, 3, 5, 5, 6];    

x = array[0];
repetitions = 0;

for (let i = 0; i < 5; i++) {
const y = array[i];

if (x === y) {
    repetitions++;
  }
} 

我应该为数组的每个元素做这样的事情吗?

谢谢!

标签: javascriptangulartypescript

解决方案


这是一个可以使用过滤器提供的简单解决方案;

var array = [1,2, 3,4,4,4,4,4,4,4, 5, 5, 6,6,6];
var duplicate = [];
var newArray = array.filter((v, i) =>{ 
 if(array.indexOf(v) == i){
  return v
}else{
  duplicate.indexOf(v) == -1 ? duplicate.push(v):'';
}
})

console.log(`new array ${newArray}`);
console.log(`Duplicate values array ${duplicate}`);


推荐阅读