计算数组对象中的数组项(组合计数)
Count Array Items in Object of Arrays (combined count)
考虑以下对象:
const test = {
foo: ['foo', 'bar', 'foobar'],
bar: ['foo', 'bar', 'foobar']
foobar: ['foo', 'bar', 'foobar']
};
如何获取上述对象中每个数组中所有项目的总计数?
我知道我可以按照以下方式做一些事情:
let count = 0;
Object.values(test).forEach(value => count += value.length);
console.log(count) // Expected result: 9
我正在寻找一种更简单(更干净,希望是单行)的方法来实现这一目标...
只需获取 flat 个值的长度。
const test = {
foo: ['foo', 'bar', 'foobar'],
bar: ['foo', 'bar', 'foobar'],
foobar: ['foo', 'bar', 'foobar']
};
let count = Object.values(test).flat().length;
console.log(count);
您可以使用数组 reduce,它非常接近单行代码:
const count = Object.values(test).reduce((acc, cv) => acc + cv.length ,0)
考虑以下对象:
const test = {
foo: ['foo', 'bar', 'foobar'],
bar: ['foo', 'bar', 'foobar']
foobar: ['foo', 'bar', 'foobar']
};
如何获取上述对象中每个数组中所有项目的总计数?
我知道我可以按照以下方式做一些事情:
let count = 0;
Object.values(test).forEach(value => count += value.length);
console.log(count) // Expected result: 9
我正在寻找一种更简单(更干净,希望是单行)的方法来实现这一目标...
只需获取 flat 个值的长度。
const test = {
foo: ['foo', 'bar', 'foobar'],
bar: ['foo', 'bar', 'foobar'],
foobar: ['foo', 'bar', 'foobar']
};
let count = Object.values(test).flat().length;
console.log(count);
您可以使用数组 reduce,它非常接近单行代码:
const count = Object.values(test).reduce((acc, cv) => acc + cv.length ,0)