(Javascript)如何从数组中找到唯一值并使用布尔值将它们放入另一个数组中?

时间:2018-05-10 19:03:28

标签: javascript arrays function loops boolean

因此,假设我的第一个数组(arrayOne)的值为[1,2,3,3,4,2]。我需要将此数组与另一个数组进行比较以检查重复值(arrayTwo),然后显示这些值。

因此,最终输出将是:1,2,3,4。

问题是我只能使用非常基本的方法,几乎​​只是布尔值,多个函数和循环。

我怎么能这样做?搜索互联网会产生与此类似的代码:

for (a = 0; a < array1.length; a += 1) {
    for (b = 0; b < array2.length; b += 1) {
        if (array1[a] !== array2[b])
            array2 = array1
        }
    }
}

output = array2   

......等等,但这对我来说似乎没有用(注意我的代码并不完全像这样,但在搜索之后,这似乎接近我正在寻找的东西)。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

在内部循环中检查当前项是否等于数组中的项。如果是,break内循环。如果b === array2.length,请检查外部循环。在这种情况下,相等意味着循环结束而没有中断,这意味着 - 不是重复。在这种情况下,将当前项目推送到array2

&#13;
&#13;
var array1 = [1, 2, 3, 3, 4, 2];
var array2 = [];
var a,b;

for (a = 0; a < array1.length; a += 1) {
  for (b = 0; b < array2.length; b += 1) {
    if (array1[a] === array2[b]) break;
  }
  
  if(b === array2.length) array2.push(array1[a]);
}

console.log(array2);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不确定理解你的问题,但我认为你想要返回初始数组而没有重复的值。

let array = [1, 2, 3, 3, 4, 2];

function removeDuplicates(input) {
  let result = [];
  
  for (i = 0; i < input.length; i++) {
    let currentValue = input[i];
    
    if (result.indexOf(currentValue) == -1) {
      result.push(currentValue);
    }
  }
  
  return result;
}

console.log(removeDuplicates(array));

Here你可以找到更多的实现。