Я пытаюсь получить 2 массива объектов, a и b. Если ключевое "имя" появляется в массиве a, я не хочу, чтобы оно появлялось в b.
var characters = [
{ 'name': 'barney', 'blocked': 'a', 'employer': 'slate' },
{ 'name': 'fred', 'blocked': 'a', 'employer': 'slate' },
{ 'name': 'pebbles', 'blocked': 'a', 'employer': 'na' },
{ 'name': 'pebbles', 'blocked': 'b', 'employer': 'hanna' },
{ 'name': 'wilma', 'blocked': 'c', 'employer': 'barbera' },
{ 'name': 'bam bam', 'blocked': 'c', 'employer': 'barbera' }
];
var a = _.filter(characters, { 'blocked': 'a' });
var z = _.pluck(a,'name');
var b = _.difference(characters, a);
_(z).forEach(function (n) {
//_.pull(b, _.filter(b, { 'name': n }));
//b = _.without(b, { 'name': n });
// b = _.without(b, _.filter(b, { 'name': n }));
_.without(b, _.filter(b, { 'name': n }));
});
Код работает, но массив "b" никогда не изменяется. Я ожидаю, что для массива "b" будут иметь два объекта с именами wilma и bam bam. Я попытался сделать это без цикла.
var c = _.without(b, _.filter(b, { 'name': 'pebbles' }));
var d = _.without(b, { 'name': 'pebbles' });
var f = _.pull(b, { 'name': 'pebbles' });
хотя код выполняется, гальки не будут идти.