/ / Повертає масив без елемента при індексі n в лодаш - javascript, масиви, лодаш

Повернути масив без елемента з індексом n в lodas - javascript, масиви, логас

Зараз у мене є така функція:

function without(array, index) {
array.splice(index, 1);
return array;
}

Я подумав, що це буде щось, що міститься у ньому, але не виглядає так.

Ця функція дозволяє мені робити один лайнер, який я можу ланцюг:

var guestList = without(guests, bannedGuest).concat(moreNames);

Неможливо досягти цього без введення предиката функцію, використовуючи лодаш?

Відповіді:

1 для відповіді № 1

_.without вже існує. Крім того, можна використовувати _.pull також, що мутує заданий масив аргументів.

var guests = ["Peter", "Lua", "Elly", "Scruath of the 5th sector"];
var bannedGuest = "Scruath of the 5th sector";
var bannedGuests = ["Peter", "Scruath of the 5th sector"];

console.debug(_.without(guests, bannedGuest )); // ["Peter", "Lua", "Elly"]

Заборона колекції гостей не підтримується безпосередньо, але ми можемо легко обійти цю проблему:

// banning an array of guests is not yet supported, but we can use JS apply:
var guestList = _.without.apply(null, [guests].concat(bannedGuests));
console.debug(guestList); // ["Lua", "Elly"]

// or if you are feeling fancy or just want to learn a new titbit, we can use spread:
guestList = _.spread(_.without)([guests].concat(bannedGuests));
console.debug(guestList); // ["Lua", "Elly"]

jsFiddle

Крім того, ви можете подивитися _.at і _.pullAt також, які мають подібну поведінку, за винятком індексів масивів замість об'єктів для видалення.