Есть ли в lodash способ найти подходящее имя (предполагается уникальное) и выполнить итерацию по массиву связанных местоположений, т.е. сначала вернуть бит массива соответствующего элемента (filter? PickBy? И т. Д.) И выполнить итерацию по нему.
var locations = [ {name:"dave", location:["home","work","pub"]},
{name:"alice", location:["school","college","university"]},
{name:"fred", location:["us","uk"]} ];
Поиск "fred", должен вернуть:
0:us
1:uk
Я могу сделать это с _.filter и вложенным _.forEach, но надеялся на что-то лучшее, чем это:
// _.filter returns the entire element that matches name=who
_.forEach(_.filter( locations, { name:who } ), function(pv,pk){
// returns the array of locations for "who" in 'pv'
_.forEach(pv.location, function(value,key) {
// iterate through the location array one at a time
console.log ( key+":"+value );
})
});