选择如果数组元素重复两次——Javascript

Choose if array element repeats itself twice -- Javascript

本文关键字:两次 Javascript 如果 数组元素 选择      更新时间:2023-09-26

有一个javascript数组

var arr = [0, 1, 2, 2, 3, 3, 5];

我想选择重复两次的元素。这里是23。我想把它们附加到一个变量中

var a = 2, b = 3;

据我所知,没有内置的功能来做这项工作。我怎么能那样做呢?谢谢。

您可以使用filter来获取出现两次的值。

var arr  = [0, 1, 2, 2, 3, 3, 5];
var dups = arr.filter ( (v,i,a) => a.indexOf(v) < i );
console.log(dups);

在注释中,你说你只会有双精度,但没有值出现超过两次。注意,如果出现后一种情况,上面的方法将返回一个值不止一次。

返回数组中的值,这就是您应该如何工作的。将它们放在不同的值中可以这样做:

var [a, b, ...others] = dups;

…但是您必须知道要为此保留多少变量,这不会使您的进一步程序变得更容易。JavaScript有很多很好的数组函数(方法),所以你应该把它们留在数组中。

确实没有内置函数可以这样做。

在构建响应数组时,必须循环遍历数组并跟踪元素出现的次数。

您可以筛选排序数组

var arr = [0, 1, 2, 2, 3, 3, 5],
    repeats = arr.filter(function (a, i, aa) {
        return aa[i - 1] === a;
    });
console.log(repeats);

最简单的方法如下:

var dups = [];
var arr = [0, 1, 2, 2, 3, 3, 5];
arr.forEach(function (v, i, a){
  delete arr[i];
  if (arr.indexOf(v) !== -1){
    dups.push(v);
  }
});
console.log(dups);