Lodash嵌套循环搜索

时间:2015-07-20 15:32:40

标签: javascript lodash

我如何在lodash中编写以下嵌套循环?什么是最简洁的,并希望更具语义性的语法?

for (var i = 0, m = 0, inner, item, needle = 'someval'; i < items.length; i++) {
    item = items[i];

    for (m = 0; m < item.inners.length; m++) {
        inner = item.inners[m];

        if (inner.id === needle)
            return { items : item.id };
    }
}

1 个答案:

答案 0 :(得分:2)

我想这会像

var item = _.find(items, function(item) {
  return _.some(item.inners, { id: needle });
});

这类似于&#34;找到至少有一个id为int&#34的inners元素的项目。

请参阅_.find_.some

如果你可以使用ES6:

let item = items.find(({inners}) => inners.some(({id}) => id === needle));