【发布时间】:2019-05-24 07:03:28
【问题描述】:
我的情况是将一个字符串分成字符串数组,然后将每三个字符转换为一个字符串。 (例如“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'。为什么??
【问题讨论】:
-
您不应该在数组上使用
for...in循环,考虑到(不幸的是)向内置类型添加可枚举方法的常见做法(以及键是字符串而不是下面的答案中指出的数字)。
标签: javascript string slice