gpt4 book ai didi

javascript - 取一个字符串,对其进行评估并查找是否有一个数字并将字符串的一部分重复该次数?

转载 作者:行者123 更新时间:2023-11-29 16:31:38 26 4
gpt4 key购买 nike

我在编写代码时遇到了这个问题,您有一个采用以下形式的特定字符串:

 d ae2 n s

现在我们必须以特定的方式对其进行解码,

  1. 用空格分割成不同的部分,形成一个数组,如["d","ae2","n","s"]

  2. 计算数组的每个元素并找出其中是否有数字。

  3. 如果有数字,则重复该字符串一定次数。

  4. 将其添加到数组中并继续。所以输出数组应该是

["d","ae","ae","n","s"]

我已经尝试了很多,但一无所获

我之前使用过此代码,但它以第二个字符串结束:

var str = "d ae2 n s"
var res = str.split(" ");
alert(res.length);
for(var x = 0; x < res.length; x++ ){
var std = res[x];
var fun = checkNum(std);
if(fun === true){
var numbers = str.match(/\d+/g).map(Number);
var index = res.indexOf(std);
var result = std.replace(/[0-9]/g, '');
var res2 = result.repeat(numbers);
res[index] = res2;
}
else{
continue;
}

for(var i = 0; i < res.length; i++ ){
console.log(res[x]);
}
}
function checkNum(t){
return /\d/.test(t);
}
// I am a terible coder :/

预期输入:d ae2 n s

预期输出:["d","ae","ae","n","s"]

最佳答案

使用fill()flatMap()方法和

正则表达式替换

  • /[^0-9]/ - 所有非数字字符

  • /[0-9]/ - 所有数字字符

var str = 'd ae2 n s'

var res = str
.split(' ')
.flatMap(i =>
Array(+i.replace(/[^0-9]/g, '') || 1)
.fill(i.replace(/[0-9]/g, ''))
)

console.log(res)

关于javascript - 取一个字符串,对其进行评估并查找是否有一个数字并将字符串的一部分重复该次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55468536/

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