for-of
гораздо более кратко и не требует ручной итерации.ЛИНТЕР рекомендует вместо этого написать что-то подобное для удобства чтения:
function collectItems(options) {
const selected = [];
for (const each of options) {
if (each.selected) {
selected.push(each.label);
}
}
return selected;
}
Но было бы еще лучше использовать reduce
в этой ситуации:
const collectItems = options => options.reduce((selectedLabels, { selected, label }) => {
if (selected) selectedLabels.push(label)
return selectedLabels;
}, []);
(Вы также можете использовать filter
с последующим map
, но для этого необходимо выполнить итерацию по массиву дважды, а не один раз)