gpt4 book ai didi

javascript - javascript数组的快速分组

转载 作者:可可西里 更新时间:2023-11-01 02:21:51 25 4
gpt4 key购买 nike

我有一个包含几千个字符串的数组

['7/21/2011', '7/21/2011', '7/21/2011', '7/20/2011', etc]

我目前正在运行此代码以按字符串分组并获取最大分组值:

var max = 0;
var group = {};
arr.map(function (value) {
if (group[value]) {
group[value]++;
} else {
group[value] = 1;
}
max = Math.max(max, group[value]);
});

是否有任何改进可以使此代码运行得更快?

编辑:结果在:http://jsperf.com/javascript-array-grouping2

编辑 编辑:该测试存在缺陷。 Mike Samuel 的代码是最快的。

6000 个条目测试 -> http://jsperf.com/javascript-array-grouping2

10K 条目测试 -> http://jsperf.com/javascript-array-grouping

最佳答案

如果您确定这是一个热点并且速度真的很重要,我会尝试通过内联 maxmap 来减少数千个函数调用。

您还可以通过删除比较来加快函数体的速度。

var max = 0;
var group = {};
for (var i = arr.length; --i >= 0;) {
var value = arr[i];
var n = group[value] = 1 - -(group[value] | 0);
if (n > max) { max = n; }
}

最好的办法是在您关心的浏览器上进行衡量。

关于javascript - javascript数组的快速分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6781722/

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