Disons que nous avons un objet avec ce format :
var thisIsObject= {
'Cow' : 'Moo',
'Cat' : 'Meow',
'Dog' : 'Bark'
};
Je voulais faire une fonction qui supprime par touche :
removeFromObjectByKey('Cow');
Disons que nous avons un objet avec ce format :
var thisIsObject= {
'Cow' : 'Moo',
'Cat' : 'Meow',
'Dog' : 'Bark'
};
Je voulais faire une fonction qui supprime par touche :
removeFromObjectByKey('Cow');
Le site delete
permet de supprimer une propriété d'un objet.
Les exemples suivants font tous la même chose.
// Example 1
var key = "Cow";
delete thisIsObject[key];
// Example 2
delete thisIsObject["Cow"];
// Example 3
delete thisIsObject.Cow;
Si vous êtes intéressé, lisez Comprendre la suppression pour une explication approfondie.
Si vous bouclez sur les clés d'un objet et les supprimez si elles correspondent à une certaine valeur, cela affecte-t-il l'index de la clé pendant que vous bouclez dessus ?
Il me semble qu'en parcourant cet objet avec for (var key in object)
correspondra toujours à cette clé et essayer d'utiliser object[key]
dans la boucle provoquera une erreur. (ou retournera undefined
)
Attention, il se peut qu'IE8 lève une exception lors de l'utilisation de l'option delete
dans certaines circonstances. Voir stackoverflow.com/questions/1073414/
Si vous utilisez Underscore.js ou Lodash, il existe une fonction "omit" qui permet de le faire.
http://underscorejs.org/#omit
var thisIsObject= {
'Cow' : 'Moo',
'Cat' : 'Meow',
'Dog' : 'Bark'
};
_.omit(thisIsObject,'Cow'); //It will return a new object
=> {'Cat' : 'Meow', 'Dog' : 'Bark'} //result
Si vous voulez modifier l'objet courant, assignez l'objet de retour à l'objet courant.
thisIsObject = _.omit(thisIsObject,'Cow');
Avec du JavaScript pur, utilisez :
delete thisIsObject['Cow'];
Une autre option avec du pur JavaScript.
thisIsObject = Object.keys(thisIsObject).filter(key =>
key !== 'cow').reduce((obj, key) =>
{
obj[key] = thisIsObject[key];
return obj;
}, {}
);
En Node.JS, vous pouvez utiliser touche-del qui supprime les clés des objets Javascript, y compris ceux qui sont imbriqués.
Exemple :
var deleteKey = require('key-del')
var originalObject = {
one: 1,
two: 2,
three: {
nestedOne: 3,
nestedTwo: 4
}
}
var result = deleteKey(originalObject, ['one', 'nestedOne'])
console.log(result)
// {two: 2, three: {nestedTwo: 4}}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
Voulez-vous que la fonction soit une fonction jQuery ou qu'est-ce que cela a à voir avec jQuery ?
23 votes
Il s'agit en fait d'un objet JavaScript, les tableaux associatifs n'existent pas en JavaScript.
2 votes
Oui, c'est juste une confusion de terminologie je pense, c'est-à-dire que c'est Javascript et non Jquery, et c'est un objet et non un tableau (l'OP peut venir d'autres langages avec des tableaux associatifs).