+
95
-

回答

const users = [{
    'name': '李磊',
    'age':13,
    'sex':"男"
}, {
    'name': '战三',
    'age':22,
    'sex':"男"
}, {
    'name': '李辉',
    'age':12,
    'sex':"女"
}];

console.log(countBy(users, (u) => u.sex));
console.log(countBy(users, (u) => u.age));
console.log(countBy(users, (u) => u.name.length));
console.log(countBy(users, (u) => (u.age >= 18 ?'成年': '未成年')));

function countBy(array, generateKey) {
    const result = {};
    for (const u of array) {
        const key = generateKey(u);
        if (result[key]) {
            result[key]++;
        } else {
            result[key] = 1;
        }
    }
    return result;
}

网友回复

我知道答案,我要回答