Empujo los datos en una matriz. Antes de presionar, compruebo que el nombre ya existe o no.
Verifiqué si el mismo nombre está disponible en la matriz o no
Si existe, la alerta arroja "elementos duplicados"
Si es un elemento nuevo, se insertará en una matriz.
El siguiente código ha estado funcionando bien hasta ahora
Pero cuando edito el campo de dirección del elemento existente, arrojará los elementos de alerta duplicados
this.arrayData = [{ "name": "sachin", "address": "india" }, { "name": "bin", "address": "us" }, { "name": "gill", "address": "aus" }] var isInArray = this.arrayData.filter(c=>c.name === this.data.name); if (isInArray.length > 0) { alert("dublicate items"); } else { this.saveItems(this.data); }Si no desea duplicados en la matriz, solo use Set, código de ejemplo:
let abc = ['a', 'b', 'c', 'd'] function saveItems(newItem) { abc = [...abc, newItem] abc = [...new Set(abc)] } saveItems('d') saveItems('d') saveItems('e') console.log(abc) //output: (5) ["a", "b", "c", "d", "e"]Intenté la siguiente solución para lograr el resultado.
for(var i=0;i < this.arrayData.length;i++) { if(i=== index) { if(this.arrayData[i].Name === this._data.Name ) { this.saveItems(this.data); break; } else if(this.arrayData[i].Name !== this._data.Name ) { var dataCheck = this.editDublicate(index); if(!dataCheck) { this.saveItems(this.data); break; } } } } editDublicate(index) { var dublicateData =false; for(var i=0;i < this.arrayData.length;i++) { if(this.arrayData[i].Name === this._data.Name && i !== index) { alert("dublicate items"); break; } } return dublicateData; }