函数返回一个的console.log如果数组包含相等的值

问题描述 投票:0回答:1

我需要检查我的阵列等于值。我尝试了很多方法,但没有一个人的作品。

我尝试:

var sorted_arr = this.variacaoForm.value.variacoes.sort();  the comparing function here. 

for (var i = 0; i < this.variacaoForm.value.variacoes.length - 1; i++) {
    if (sorted_arr[i + 1].sku == sorted_arr[i].sku) {
        console.log('Equals elements array')
    }
}

通过这种方式,第一和第三个元素永远不会触发一个的console.log()

相关搜索:

for(let i=0;i<this.variacaoForm.value.variacoes.length;i++){
  if(this.produto.sku_prin == this.variacaoForm.value.variacoes[i].sku){
    console.log('Equal values array');
  }
}

这样,我得到的console.log相同的,如果我没有同等价值

也:

  for (let i = 0; i < this.variacaoForm.value.variacoes.length-1; i++) {
      for (let j = i+1; j < this.variacaoForm.value.variacoes.length; j++) {
           if (this.variacaoForm.value.variacoes[i].sku === this.variacaoForm.value.variacoes[j].sku) {
               console.log('x')
           }
      }
  }     
angular typescript
1个回答
1
投票

只要使用带有过滤器,索引和lastIndex的箭头功能,将打印是重复的值。

    const data = [2, 4, 1, 3, 9, 3, 1];
    console.log(data.filter(a => data.indexOf(a) !== data.lastIndexOf(a))); 

输出将是重复的值的阵列。如果你想在过滤器深,只是搜索地图,过滤器,减少操作人员。

© www.soinside.com 2019 - 2024. All rights reserved.