29

I have an array like this :

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

How can i remove the id from the array and return a new array that does not have the value of the id in new array?

3 Answers 3

46

For the complex solutions you can use method _.reject(), so that you can put a custom logic into callback:

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));

For the simple cases use more convenient method _.without():

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

DEMO

Sign up to request clarification or add additional context in comments.

Comments

14

_filter works too. It's the opposite of _reject.

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/

Comments

1

You can use splice, though it is not underscore's API:

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

In your example:

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.