Angular:如何停止重复项推入数组?

时间:2018-12-03 04:50:17

标签: javascript angular

这里data console和此data推送了duplicatePushArray,但是一旦推送,我就不想再次推送,但是如果我再次推送,我也想再次显示相同的消息。

例如第一次我再次按下2.jpg,3.jpg,现在再次按下2.jpg,3.jpg,所以它显示了这样的消息2.jpg,3.jpg value is already pushed please change this values,现在再次按下2.jpg,3.jpg,所以它显示了这样的消息,2.jpg,3.jpg,2.jpg,3.jpg value is already pushed please change this values,但是我想显示这样的消息2.jpg,3.jpg value is already pushed please change this values

console.log(data); // (2) [{…}, {…}]0: {imageName: "2.jpg"}1: {imageName: "3.jpg"}
duplicatePushArray : any[] = [];
constructor(private snackBar : MatSnackBar) {}      

for(var i = 0; i < data.length ; i++){
  if(this.duplicatePushArray.indexOf(data[i].imageName)) {
    this.duplicatePushArray.push(data[i].imageName);
    this.snackBar.open(this.duplicatePushArray+' '+ 'value is already pushed please change this values', '',{
      duration: 2000
    })
  }
}

1 个答案:

答案 0 :(得分:2)

const data = [1,2,3,4,5,6,7,1,2,3,4,1,2];
let duplicatePushArray = [];
for(let i = 0; i < data.length ; i++){
  if(duplicatePushArray.indexOf(data[i]) === -1) {
    duplicatePushArray.push(data[i]);
  } else {
    console.log(`${data[i]} is already pushed into array`);
  }
}

console.log('Final Array: ', duplicatePushArray)