J'ai un éventail d'articles comme: et j'essaie de supprimer tous les éléments correspondant à l'identifiant donné. Dans ce cas; je suis coincé! Je peux le faire fonctionner facilement en ayant un tableau plus simple, mais ce n'est pas ce dont j'ai besoin ... J'ai également besoin de supprimer l'article par valeur car je ne veux pas que le problème de faire référence à des éléments par leur indice. P> Y a-t-il une méthode JQuery que je pourrais utiliser où je n'ai pas besoin de itération via le tableau d'éléments, spécifiez plutôt un sélecteur? p> Voici mon jsfiddle: Htp://jsfiddle.net/zafrx/ p> p> animal code> p>
9 Réponses :
Je ne sais pas combien de problème il est de faire référence à des éléments de réseau par index. Le moyen standard d'éliminer les éléments de réseau est avec le méthode d'épissure xxx pré>
et bien sûr, vous pouvez généraliser cela dans une fonction d'assistance afin de ne pas avoir à dupliquer cela partout. p>
Je viens de remarquer cette syntaxe incorrecte: p> for (var i = 0; i < items.length; i++)
if (items[i].id && items[i].id === "animal") {
items.splice(i, 1);
break;
}
articles.splicite (articles.indexof ("animaux"), 1)
Vous pouvez utiliser épissure code> ou faire fonctionner vous-même. Voici un exemple:
Vous devriez le faire comme ceci (assurez-vous de disposer de la syntaxe droite ... Vous ne pouvez pas avoir une matrice avec des propriétés, mais votre objet intérieur {} code>, puis vous pouvez itérer par les touches et supprimer non désiré. Touche):
var items = {id: "animal", type: "cat", cute: "yes"}
var removeItem = "animal"; // or with the ID matching animal...
for(var p in items){
if(items[p] === removeItem)
delete items[p]
}
Je pense que cela pourrait être la bonne réponse. J'ai manqué la syntaxe incorrecte d'Op.
wow, tant d'idées, mais toujours pas ce que je voulais XD
Ceci supprimera toutes les entrées de la valeur donnée et renvoyer la valeur supprimée: p> i trouvé d'autres solutions ici:
Supprimer l'élément du tableau par la valeur P> p>
Pas besoin de jQuery ou de tiers tiers liber pour cela, nous pouvons maintenant utiliser le nouveau filtre ES5:
let myArray = [{ id : 'a1', name : 'Rabbit'}, { id : 'a2', name : 'Cat'}]; myArray = myArray.filter(i => i.id !== 'a1');
Il y a un moyen simple!
// define function function delete_by_id(id) { var myItems = [{ id: 1, type: "cat", cute: "yes" }, { id: 2, type: "rat", cute: "yes" }, { id: 3, type: "mouse", cute: "yes" }]; // before console.log(myItems); myItems.splice(myItems.indexOf(myItems.find(item => item.id == id)), 1); // after console.log(myItems); } // call function delete_by_id(1);
function removeFromArr(parray, pstring, ptag) { var farr = []; var count = 0; for (var i = 0; i < pa.length; i++) { if (pstring != pa[i][ptag]) { farr[count] = pa[i]; count++; } } return farr; }
Veuillez inclure une explication de la manière et de la raison pour laquelle cela résout le problème contribuerait vraiment à améliorer la qualité de votre message.
Votre syntaxe est invalide. Avez-vous un tableau ou un objet? Vous avez mélangé la syntaxe.
Si vous regardez dans la console JavaScript (Firebug, dans mon cas), il a soulevé cette erreur, «non capturé SyntaxError: Jeton inattendu:« Vous devez créer un objet d'objet et vous pourrez accéder facilement aux attributs de l'article.
Objet
var items = {id: "animal", type: "cat", mignon: "oui"} code>, tableau
var items = ["animal", "oui", "oui" ] code>
Ma faute! Je vais l'enlever