On Lucee 4.5.1.003 У меня есть эта функция, где LineArray - это массив объектов LineItem.Lucee array.each возвращаемое значение
public function getLineItemDetailsById(required numeric id){
this.LineArray.each(function(i){
if(i.Id == id){
return i;
}
});
}
Функция возвращает значение null, даже если существует совпадение. Если я добавлю var для хранения найденного объекта, возвращается var.
public function getLineItemDetailsById(required numeric id){
var found = '';
this.LineArray.each(function(i){
if(i.Id == id){
found = i;
//return i;
}
});
return found;
}
Я делаю что-то неправильно, ожидая array.each, чтобы вернуть i или я не понимаю, как работает array.each?
Редактировать: Чтобы быть ясным, вторая функция возвращает найденный объект.
Не встретишь «некоторые» раньше. Есть ли какая-либо польза от использования закрытия в этом случае над простым циклом for-in? Это уменьшит вдвое. строк и читайте более четко: 'for (var item в this.LineArray) { if (item.id == id) return item; } ' – CfSimplicity
Использование метода итератора, специально предназначенного для вида работы под рукой, более яснее в намерениях, чем просто использование общего цикла. –