You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Underscore/Lodash统计JSON数组唯一name数与tracks.items总长度

解决方案:用Lodash/Underscore实现两个统计需求

没问题,这两个统计需求用Lodash或者Underscore都能轻松实现,我给你分步骤说明:

1. 统计数组中唯一name的数量

这里有两种简单的实现方式,你可以根据习惯选择:

方法一:用_.uniqBy(Lodash专属,简洁直观)

// 假设你的数组名为musicCollections
const uniqueNameCount = _.uniqBy(musicCollections, 'name').length;

解释:_.uniqBy会遍历数组,根据name字段对元素去重,返回一个只包含唯一name的新数组,直接取这个数组的长度就是你要的唯一名称数量。

方法二:用_.countBy(Lodash/Underscore通用)

如果你之前用_.countBy只拿到了单个计数,是因为没进一步处理返回的结果:

const nameFrequency = _.countBy(musicCollections, 'name');
const uniqueNameCount = Object.keys(nameFrequency).length;

解释:_.countBy会生成一个对象,键是各个name的值,值是对应名称出现的次数。只要取这个对象的键的数量,就是唯一name的总数啦。

2. 计算所有tracks.items的长度总和

Lodash 实现(用_.sumBy)

const totalTrackItems = _.sumBy(musicCollections, item => item.tracks.items.length);

解释:_.sumBy会遍历数组中的每个元素,执行回调函数获取每个元素的tracks.items数组长度,然后自动把所有长度加起来得到总和。

Underscore 实现(用_.reduce,因为Underscore没有sumBy)

const totalTrackItems = _.reduce(musicCollections, (total, item) => {
  return total + item.tracks.items.length;
}, 0);

解释:_.reduce从初始值0开始,逐个累加每个元素的tracks.items长度,最终得到所有列表的总长度。

内容的提问来源于stack exchange,提问作者Ridhwaan Shakeel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:09:32