web-dev-qa-db-fra.com

Suppression d'un élément du tableau avec Underscore.js

J'ai un tableau comme celui-ci:

var array = [1,20,50,60,78,90];
var id = 50;

Comment puis-je supprimer l'identifiant du tableau et renvoyer un nouveau tableau qui n'a pas la valeur de l'identifiant dans le nouveau tableau?

29
MBehtemam

Pour les solutions complexes, vous pouvez utiliser la méthode _.reject() , afin que vous puissiez mettre une logique personnalisée en rappel:

var removeValue = function(array, id) {
    return _.reject(array, function(item) {
        return item === id; // or some complex logic
    });
};
var array = [1, 20, 50, 60, 78, 90];
var id = 50;
console.log(removeValue(array, id));

Pour les cas simples, utilisez une méthode plus pratique _.without() :

var array = [1, 20, 50, 60, 78, 90];
var id = 50;
console.log(_.without(array, id));

[~ # ~] démo [~ # ~]

43
Eugene Naydenov

_ filter fonctionne aussi. C'est l'opposé de _ rejet .

var array = [1,20,50,60,78,90];
var id = 50;

var result = _.filter(array, function(x) { return x != id });

http://jsfiddle.net/kman007_us/WzaJz/5/

14
Kevin Meredith

Vous pouvez utiliser splice, bien que ce ne soit pas l'API de soulignement:

arrayObject.splice(index,howmany,item1,.....,itemX)

Dans votre exemple:

var index = _.indexOf(array, id);
array.splice(index, 1);
0
timelyxyz