gpt4 book ai didi

javascript - 使用javascript仅在数组中合并附近的重复值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:56 24 4
gpt4 key购买 nike

我有一个从 $('.player').each(function() 生成的数组,它看起来像这样:

["foo"]
["foo"]
["bar"]
["bar"]
["bar"]
["foo"]
["somethingelse"]

我希望这个数组只合并附近的值(前两个 foo 而不是最后一个,因为它的上方和下方没有 foo索引):

["foo"]
["bar"]
["foo"]
["somethingelse"]

谁能指出正确的方向,告诉我如何合并数组中的重复值(如果接近相同的值)?

到目前为止,我唯一拥有的就是这个,但遗憾的是它会合并值,无论它们位于什么索引处。

var uniqueNames = [];
$.each(fruits, function(i, el){
if($.inArray(el, uniqueNames) === -1) uniqueNames.push(el);
});
console.log(uniqueNames);

编辑:谢谢你的代码完美无缺。就我所知,如果我想合并这两个 foo 并重命名(如 foo2)怎么办?

最佳答案

您可以在 O(N) 中使用直接的纯 JS 执行此操作,如下所示:

var RemoveDuplicates = function(arr){
if(arr.length<2) //Array is too short to have duplicates
return arr
var ret = [arr[0]] //First item cannot be a duplicate
for(var i=1;i<arr.length;i++){ //Loop over all other items
if(arr[i-1]!=arr[i]) //If previous item is the same, ignore this item
ret.push(arr[i]); //Previous item was different, so keep current
}
return ret;
}

arr = ["foo","foo","bar","bar","bar","foo","somethingelse"]
arr = RemoveDuplicates(arr)
console.log(arr)

关于javascript - 使用javascript仅在数组中合并附近的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41272407/

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