Удаление элемента из массива с помощью 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);
Ответ 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);