gpt4 book ai didi

javascript - 想要获取数组中重复值的计数

转载 作者:行者123 更新时间:2023-12-02 02:13:18 25 4
gpt4 key购买 nike

我是 javascript 的初学者,我想获取数组上重复值的计数

我有一个字符串“aaaaaabbbbbbbcccccccaa”,我希望输出数组像[“a6”,“b7”,“c7”,“a2”];

我打平但失败了。请帮帮我

提前致谢:)

var a = "aaaaaabbbbbbbcccccccaa";

function aa(data){
var a = [];
var x = [];
//var b = data.split("")
// var b = data.split("").filter((val,key, arr)=>{
// //console.log(arr.indexOf(val) +" "+ key )
// return arr.indexOf(val) === key
// })
//console.log(b);

for(let i = 0; i<= data.length-1; i++){
for(let j = 0; j<= data.length-1; j++){
if(data[i] !== data[j] && x.indexOf(data[i]+""+j) <0){
x.push(data[i]+""+j);
a.push(data[i] +""+ j);
break;
}
}
}
console.log(x);
return a;
}

console.log(aa(a));

最佳答案

我将使用正则表达式来匹配字符串中的重复字符,然后将它们映射到 match[0] + match.length 以获取该部分的连接子字符串:

const aa = data => data
.match(/(.)\1*/g)
.map(match => match[0] + match.length);
console.log(aa('aaaaaabbbbbbbcccccccaa'));

如果您不想使用正则表达式,请不要使用从 0 到字符串长度之类的嵌套循环 - 相反,从 第一个 循环内部计算重复字符,从当前的 i 索引开始并递增:

function aa(data) {
const result = [];
for (let i = 0; i < data.length; i++) {
const char = data[i];
let matches = 1;
while (data[i + 1] === char) {
i++;
matches++;
}
result.push(char + matches);
}
return result;
}

console.log(aa('aaaaaabbbbbbbcccccccaa'));

关于javascript - 想要获取数组中重复值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67466451/

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