Удаление элемента из массива с помощью Underscore.js
У меня есть такой массив:
var array = [1,20,50,60,78,90];
var id = 50;
Как я могу удалить id из массива и вернуть новый массив, который не имеет значения id в новом массиве?
Ответы
Ответ 1
Для сложных решений вы можете использовать метод _.reject()
, чтобы вы могли вставить обратную связь в пользовательскую логику:
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));
Для простых случаев используйте более удобный метод _.without()
:
var array = [1, 20, 50, 60, 78, 90];
var id = 50;
console.log(_.without(array, id));
DEMO
Ответ 2
_filter тоже работает. Это противоположно _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/
Ответ 3
Вы можете использовать сращивание, хотя это не подчёркивает API:
arrayObject.splice(index,howmany,item1,.....,itemX)
В вашем примере:
var index = _.indexOf(array, id);
array.splice(index, 1);