gpt4 book ai didi

javascript - 将计数追加到javascript字符串数组中的重复项

转载 作者:行者123 更新时间:2023-12-03 17:05:27 25 4
gpt4 key购买 nike

我试图将计数追加到字符串数组中的重复项。我有一个这样的数组,其中包含重复的条目。

var myarray = ["John", "John", "John", "Doe", "Doe", "Smith", 
"John", "Doe", "Joe"];

我想要的输出是
var newArray = ["John - 1", "John - 2", "John - 3", "Doe - 1", 
"Doe - 2", "Smith", "John - 4", "Doe - 3", "Joe"];

做这个的最好方式是什么?

最佳答案

这可以通过 Array.map() 的两次传递来实现:

var map = {};
var count = myarray.map(function(val) {
return map[val] = (typeof map[val] === "undefined") ? 1 : map[val] + 1;
});

var newArray = myarray.map(function(val, index) {
if (map[val] === 1) {
return val;
} else {
return val + ' - ' + count[index];
}
});

第一遍记录每个唯一项已被查看的次数,并返回与输入数组相对应的数组,该数组记录每个项的当前计数。

第二遍将计数附加到总计数不为1的所有项目。

http://jsfiddle.net/alnitak/Z4dgr/上的工作演示

关于javascript - 将计数追加到javascript字符串数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8794169/

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