У меня есть следующий код:Как динамически создавать массивы внутри массивов с JavaScript
function pair(str) {
// This function checks whether there
// a certain letter in a string and checks
// if it is followed or follows a specific
// letter.
for (var i = 0; i < str.length; i++) {
// If the letter isn't the letter "C"
// before the "G", then it'll placed before it.
if (str[i] == 'G' && str[i - 1] != 'C') {
str = str.slice(0, i) + 'C' + str.slice(i);
// The same goes for "A" and "T".
} else if (str[i] == 'T' && str[i - 1] != 'A') {
str = str.slice(0, i) + 'A' + str.slice(i);
// And so on.
} else if (str[i] == 'C' && str[i + 1] != 'G') {
str = str.slice(0, i + 1) + 'G' + str.slice(i + 1);
} else if (str[i] == 'A' && str[i + 1] != 'T') {
str = str.slice(0, i + 1) + 'T' + str.slice(i + 1);
}
}
str = str.split('');
var temp = [];
for (var j = 0; j <= str.length/2; j++) {
temp.push([]);
for (var k = 0; k < 2; k++) {
temp[j].push(str.shift());
}
}
return temp;
}
pair("TTGAG");
Строка затем становится «ATATCGATCG». Пока что так. Каждая пара букв должна быть массивом, и каждый массив является элементом массива. Ожидаемый результат:
// > [ ['A', 'T'], ['A', 'T'], ['C', 'G'], ['A', 'T'], ['C', 'G'] ]
Но вместо этого я получаю этот результат:
// > [ [ 'A', 'T' ], [ 'A', 'T' ], [ 'C', 'G' ] ]
Что такое ошибка в коде? Я несколько раз пытался найти ошибку, но мне это не удалось.
может быть введенной строкой «TAGC ...» или это просто пара мудрый раскол. – archie