Angular: как остановить повторное нажатие элемента в массиве? - PullRequest
0 голосов
/ 03 декабря 2018

Здесь 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 голосов
/ 03 декабря 2018

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...