Я хочу отфильтровать массив positions
и удалить все позиции, представленные в массиве people
.
Я пробовал несколько комбинаций _.forEach
и _.filter
, но просто не могу понять это.
console.log(position)
var test = _.filter(position, function(pos) {
_.forEach(people, function(peo) {
_.forEach(peo.position, function(peoplePos) {
if(peoplePos.value == pos.value){
return false;
}
});
});
});
console.log(test)
Моя главная проблема, я думаю, заключается впозиции вложены в каждый объект людей
var positions = [{
val: 'CEO',
label: 'CEO XXX'
}, {
val: 'CTO',
label: 'CTO XXX'
}, {
val: 'CBO',
label: 'CBO XXX'
}, {
val: 'CLO',
label: 'CLO XXX'
}]
var people = [{
id: 'AAA',
positions: [{
val: 'CEO',
label: 'CEO XXX'
}]
},{
id: 'BBB',
positions: [{
val: 'CXO',
label: 'CXO XXX'
},{
val: 'CEO',
label: 'CEO XXX'
}]
},{
id: 'CCC',
positions: [{
val: 'CTO',
label: 'CTO XXX'
}]
}]
В этом сценарии я стремлюсь к следующему результату:
var positions = [{
val: 'CBO',
label: 'CBO XXX'
}, {
val: 'CLO',
label: 'CLO XXX'
}]
Поскольку CBO и CLO не представлены ни одним объектом вмассив людей.