자바스크립트 reduce()

1 개요[ | ]

자바스크립트 reduce()
const data = [
    [{ value: 5, suit: 's' }, { value: 4, suit: 's' }, { value: 6, suit: 'c' }, { value: 11, suit: 'd' }, { value: 12, suit: 'c' }],
    [{ value: 9, suit: 'd' }, { value: 12, suit: 'h' }, { value: 8, suit: 'c' }, { value: 12, suit: 's' }, { value: 2, suit: 's' }],
    [{ value: 4, suit: 'h' }, { value: 6, suit: 's' }, { value: 10, suit: 'c' }, { value: 3, suit: 'd' }, { value: 7, suit: 'd' }],
];
const out = data.map(cards =>
    cards.reduce(({ values, suits }, { value, suit }) => ({
        values: [...values, value],
        suits: [...suits, suit]
    }), { values: [], suits: [] }))
console.log(out)
const rows = [
	{id: 1, level: 'WARN', message: 'name missing'},
	{id: 2, level: 'INFO', message: 'hello'},
	{id: 3, level: 'WARN', message: 'duplicated id'},
	{id: 4, level: 'INFO', message: 'world'},
];
const groupRows = rows.reduce((group, row)=>{
    const {level} = row;
    group[level] = group[level] ?? [];
    group[level].push(row)
    return group;
}, [])
console.log(groupRows)
const groupBy = (arr, key) => arr.reduce((acc, item) => ((acc[item[key]] = [...(acc[item[key]] || []), item]), acc), {});
const rows = [
	{id: 1, level: 'WARN', message: 'name missing'},
	{id: 2, level: 'INFO', message: 'hello'},
	{id: 3, level: 'WARN', message: 'duplicated id'},
	{id: 4, level: 'INFO', message: 'world'},
];
const groupRows = groupBy(rows, 'level')
console.log(groupRows)

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}