Базовые пары - это пара AT и CG. Я пытаюсь сопоставить отсутствующий элемент с предоставленным символом и возвращать результаты в виде массива 2d.Ошибка Javascript: «не является функцией»
Когда я использовал метод ниже, он отлично работает.
function pair(str) {
str.split("");
//convert the string into an array
var newArray = [];
for (var i = 0; i < str.length; i++){
var subArray = [];
switch (str[i]){
case "G":
subArray.push("G", "C");
break;
case "C":
subArray.push("C", "G");
break;
case "A":
subArray.push("A", "T");
break;
case "T":
subArray.push("T", "A");
break;
}
newArray.push(subArray);
}
return newArray;
}
pair("GCG");
//[["G", "C"], ["C", "G"], ["G", "C"]]
Однако, когда я попытался изменить метод от push()
до splice()
, как показано ниже, это не работает.
function pair(str) {
str.split("");
for (var i = 0; i < str.length; i++){
var subArray = [];
switch (str[i]){
case "G":
subArray.push("G", "C");
break;
case "C":
subArray.push("C", "G");
break;
case "A":
subArray.push("A", "T");
break;
case "T":
subArray.push("T", "A");
break;
}
str.splice(i, 1, subArray);
}
return str;
}
pair("GCG");
//ERROR:"str.splice is not a function"
Сначала я думал, что причина, почему этот метод не удалось в том, что мы не можем установить третий параметр в splice()
быть массивом. Поэтому я пробовал это:
["G", "C", "G"].splice(0,1,["G","C"]) //["G"]
Похоже, что это работает.
Может ли кто-нибудь показать мне, где я ошибаюсь, пожалуйста?
ACGT? Является ли эта ДНК? –
Вы используете фреймы или закладки? – User2012384
Является ли 'str' строкой? –