gpt4 book ai didi

Javascript 计算 json 数组中的不同值和总和列表

转载 作者:行者123 更新时间:2023-11-30 14:40:08 24 4
gpt4 key购买 nike

例如,在下面的 json 数组中,每个元素都有一个 nametracks.items 中的可变项目列表

[
{
"name": "whatever",
"tracks": {
"items":
[
{
"item 1" : "some item"
},
...
]
}
},
{...}
...
]

在 javascript 中,我需要找到不同的 name 的数量,以及在中找到的所有 tracks.items 的长度(大小)的总和整个数组。
我如何使用下划线或 lodash 来做到这一点?我试过 _.countBy() 但它只返回单个计数

编辑
谢谢大家
(替代解决方案)
const uniqueNames = new Set(array.map(item => item.name)).size
const totalItems = array.reduce((sum, item) => sum + item.tracks.items.length, 0)

最佳答案

作为Stucco noted in his answer您可以通过检查 _.uniqBy() 结果的长度来获取唯一名称的数量按名称

您可以使用 _.sumBy() 获取轨道项目的总量.

var arr = [{"name":"whatever","tracks":{"items":[{"item 1":"some item"},{"item 2":"some item"},{"item 3":"some item"}]}},{"name":"whatever","tracks":{"items":[{"item 4":"some item"},{"item 5":"some item"},{"item 6":"some item"},{"item 7":"some item"}]}},{"name":"whatever2","tracks":{"items":[{"item 8":"some item"},{"item 9":"some item"},{"item 10":"some item"},{"item 11":"some item"}]}}];

var uniqueNamesCount = _.uniqBy(arr, 'name').length;
var totalTracksItemsCount = _.sumBy(arr, 'tracks.items.length');

console.log('uniqueNamesCount', uniqueNamesCount); // 2
console.log('totalTracksItemsCount', totalTracksItemsCount); // 11
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>

关于Javascript 计算 json 数组中的不同值和总和列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49806871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com