배열의 각 요소를 순회하며 callback함수의 실행 값을 누적하여 하나의 결과값을 반환하는 함수
arr.reduce(callback[, initialValue])
callback - 배열의 각 요소에 대한 실행함수
총 4가지의 인수를 받는다.
const chartData = [
{ label: "Red", value: 12 },
{ label: "Blue", value: 19 },
{ label: "Yellow", value: 3 },
{ label: "Green", value: 5 },
{ label: "Purple", value: 2 },
{ label: "Orange", value: 3 },
];
const initalData = { names: [] as string[], prices: [] as number[] };
const { names, prices } = chartData.reduce((result, item) => {
result.names.push(item.label);
result.prices.push(item.value);
return result;
}, initalData);
console.log(names , prices)
결과값 :
initialData 객체를 생성하여 names와 prices라는 빈 배열을 명시적으로 타입을 지정하여 생성.
chartData 배열을 reduce 함수를 사용하여 가공하고, 그 결과를 구조분해(Destructuring)하여 names와 prices 변수에 할당.
reduce 함수가 동작하여 initialData 객체가 초기값으로 사용되고, 해당 객체의 names와 prices 배열에 chartData의 각 항목의 label과 value가 추가.
names와 prices에는 chartData의 각 항목의 label과 value가 배열로 저장하여 가공된 데이터를 차트사용
data={{
labels: names, //
datasets: [{ data: prices,
그려진 차트
