2015-07-20 4 views
1

Как бы я начал писать следующий вложенный цикл в lodash? Что будет tersest, и, надеюсь, больше семантического, синтаксис?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 }; 
    } 
} 

ответ

2

Я предполагаю, что это будет что-то вроде

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

Это читается как «найти элемент, который имеет по крайней мере один колбы элемент с идентификатором, равным иглу».

См. _.find и _.some.

Если вы можете использовать ES6:

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

первая версия не закончится до тех пор, пока сравнивались *** все *** пункты. будет ли версия ES6 заканчиваться раньше? хотел бы, чтобы он был максимально реалистичным ... +1 – culturalanomoly

+0

ищет что-то вроде C# 'IEnumerable.First' ... – culturalanomoly

+1

Что заставляет вас думать так? Как найти, так и остановить, как только условие будет выполнено. –

Смежные вопросы