У меня есть структура данных, которая выглядит как этотИспользование findWhere с вложенными объектами в массиве
var foo = [
{
bar: {
something: 123
},
baz: {
somethingElse: 321
}
},
{
bar: {
something: 444
},
baz: {
somethingElse: 555
}
}
];
Я тогда переменную:
var findMe = 444;
я хотел бы искать через мои данные foo
struct (массив объектов), чтобы увидеть, соответствует ли findMe
свойству bar.something
любого из объектов внутри массива foo
.
Использование underscore.js, я бы подумал, следующий фрагмент кода будет делать трюк:
var _ = require('underscore');
var thingImLookingFor = _.findWhere(foo, {bar.something: findMe});
Однако это приводит к синтаксической ошибке в моем приложении:
Uncaught SyntaxError: Unexpected token .
ли кто-нибудь способный пролить свет на то, как я могу добиться поиска, который я ищу?
Спасибо!
вам нужно выполнить глубокий поиск http://stackoverflow.com/questions/17578725/underscore-js-findwhere-nested-objects – YarGnawh
или вы можете попробовать что-то с JSONPath HTTP: // goessner. net/articles/JsonPath/ – YarGnawh
@YarGnawh спасибо за ответы :) К счастью, потому что точно точно, насколько глубокий поиск и какие именно ключи нужно искать, я могу использовать find(). Я не уверен в производительности, которую имеет подход, но из моих тестов он выглядит хорошо :) –