javascript 如何在数组中创建类型计数?

4xy9mtcn  于 2023-06-04  发布在  Java
关注(0)|答案(2)|浏览(119)

我有一个数组,现在想计数的类型在一个数组。
我的代码:

arr = [function() {}, new Object(), [], {}, NaN, Infinity, undefined, null, 0];

console.log({...arr});

但我想要的结果像下面给出的格式,我如何才能实现呢?

OutPut: { function: 1, object: 4, number: 3, undefined: 1 }

接下来我可以尝试什么?

omtl5h9j

omtl5h9j1#

你可以计算类型。

const
    array = [function() {}, new Object(), [], {}, NaN, Infinity, undefined, null, 0],
    result = array.reduce((r, v) => {
        const type = typeof v;
        r[type] = (r[type] || 0) + 1;
        return r;
    }, {});

console.log(result);
2skhul33

2skhul332#

你只需要得到每个条目的typeof,并在一个对象中求和。
下面是一个例子:

const arr = [function() {}, new Object(), [], {}, NaN, Infinity, undefined, null, 0];

const obj = arr.map(e => typeof e).reduce((o,t) => ({...o, [t]: (o[t] ?? 0) + 1 }), {})
console.log(obj);

相关问题