我的情况是将一个字符串分成字符串数组,然后将每三个字符转换为一个字符串。 (例如“xxxyyy”-> ['xxx','yyy']
)
const translate = function (RNA) {
var arrRna = Array.from(RNA);
var arr = [];
for (var key in arrRna) {
if ((key % 3) == 0) {
var temp = RNA.slice( key, (key+3));
arr.push(temp);
}
}
return arr;
}
console.log(translate('xxxyyyzzz'));
预期结果:
['xxx','yyy','zzz']
但是我想要的结果是:
[ 'xxx', 'yyyzzz', 'zzz' ]
另外,我注意到slice方法在第一次迭代中按预期方式工作,但是之后,结果很奇怪->'yyyzzz'。为什么??
最佳答案
多田与其将字符串转换为数组并遍历每个字符等待索引为3的倍数,不如将其计数为3s。
function translate(rna) {
let arr = [];
for (let i = 0; i < rna.length; i += 3) {
arr.push(rna.slice(i, i + 3));
}
return arr;
}
console.log(translate('xxxydyyzzzd'));
关于javascript - 从String.slice()方法返回的奇怪结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53924902/