Professional Documents
Culture Documents
9. Метод reduce
9. Метод reduce
console.log(total); // 32
Масив об'єктів
Під час роботи з масивом об'єктів виконується редукування за значенням
певної властивості. Наприклад, у нас є масив студентів з балами за тест.
Необхідно отримати середній бал.
const students = [
{ name: "Манго", score: 83 },
{ name: "Полі", score: 59 },
{ name: "Аякс", score: 37 },
{ name: "Ківі", score: 94 },
{ name: "Х'юстон", score: 64 },
];
Просунутий reduce
Припустимо у нас є наступна задача: з масиву постів твіттера окремого
користувача необхідно порахувати суму усіх лайків. Можна перебрати циклом
for або forEach, кожне з цих рішень вимагатиме написання додаткового коду.
А можна використовувати reduce.
const tweets = [
{ id: "000", likes: 5, tags: ["js", "nodejs"] },
{ id: "001", likes: 2, tags: ["html", "css"] },
{ id: "002", likes: 17, tags: ["html", "js", "nodejs"] },
{ id: "003", likes: 8, tags: ["css", "react"] },
{ id: "004", likes: 0, tags: ["js", "nodejs", "react"] },
];
console.log(likes); // 32
console.log(countLikes(tweets)); // 32
return allTags;
}, []);
console.log(tags);
return allTags;
}, []);
console.log(getTags(tweets));
Після того, як ми зібрали всі теги з постів, добре б було порахувати кількість
унікальних тегів в масиві. І знову reduce стане в пригоді.
const tweets = [
{ id: "000", likes: 5, tags: ["js", "nodejs"] },
{ id: "001", likes: 2, tags: ["html", "css"] },
{ id: "002", likes: 17, tags: ["html", "js", "nodejs"] },
{ id: "003", likes: 8, tags: ["css", "react"] },
{ id: "004", likes: 0, tags: ["js", "nodejs", "react"] },
];
return allTags;
}, []);
acc[tag] += 1;
return acc;
};