Я создал простую функцию: он имеет массив как вход и идентификатор. Функция предполагает взять все элементы «до» данной идеи.Переписать цикл в функциональном стиле
function takeBefore(stars, id) {
var taken = [];
for(var i = 0, length = stars.length; i < length; i++) {
if (stars[i].itemId === id) {
break;
}
taken.push(stars[i]);
}
return taken;
}
Код ниже выполняет эту работу, но в последнее время я стал немного придирчивым. Хотелось бы избавиться от for-loop и некоторого функционального стиля.
Можно ли использовать underscore
или ES5
функции для выполнения той же работы?
, который работает очень хорошо! вы могли бы plz expay 'every' .. Я думал, что он возвращает логическое значение, как он используется как pos + all? –
@alexanderb: на самом деле это хак. При использовании с '+', логические переменные преобразуются в ints (true = 1, false = 0), и я использую это, чтобы сдвинуть позицию на единицу, если все элементы соответствуют предикату. – georg