gpt4 book ai didi

javascript - 计算每个数组项的出现次数并将结果作为对象返回

转载 作者:行者123 更新时间:2023-12-01 15:52:40 24 4
gpt4 key购买 nike

任何本地替代方案:

const colorArray = ['red', 'green', 'green', 'blue', 'purple', 'red', 'red', 'black'];

到:

Object {
"red": 3,
"green": 2,
"blue": 1,
"purple": 1,
"black": 1
}

在javascript中??

const colorArray = ['red', 'green', 'green', 'blue', 'purple', 'red', 'red', 'black'];

function categorizeUnique(array) {
const distinct_objects = {};
const length = array.length;
for(let i=0; i<length; i++) {
const distinct_objects_keys = Object.keys(distinct_objects);
const possible_index = distinct_objects_keys.indexOf(array[i]);
if(possible_index === -1) {
distinct_objects[array[i]] = 1;
} else {
distinct_objects[distinct_objects_keys[possible_index]]++;
}
}
return distinct_objects;
}

const result = categorizeUnique(colorArray);
console.log(result);
这是我尝试完成的,但我想要一个已经内置的原生解决方案。

感谢您的宝贵努力和时间!!

最佳答案

Array.prototype.reduce()似乎与您要查找的内容非常接近:

const src = ['red', 'green', 'green', 'blue', 'purple', 'red', 'red', 'black'],

result = src.reduce((acc,color) => (acc[color]=(acc[color]||0)+1, acc), {})

console.log(result)
.as-console-wrapper{min-height:100%;}

关于javascript - 计算每个数组项的出现次数并将结果作为对象返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63685600/

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