我需要检查数组中的equals值。我尝试了很多方法,但没有人能解决。
我尝试:
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')
}
}
}
答案 0 :(得分:1)
只需使用带有过滤器,索引和lastIndex的箭头功能,它将打印出重复的值。
const data = [2, 4, 1, 3, 9, 3, 1];
console.log(data.filter(a => data.indexOf(a) !== data.lastIndexOf(a)));
输出将是重复值的数组。如果您想深入过滤器,只需搜索地图,过滤器,简化运算符即可。