Обе функции имеют свойство .length
с орфографической ошибкой, как .lenth
. Но помимо этого ...
Причина, по которой ваша первая функция не работает, заключается в том, что не все браузеры поддерживают доступ к индексу типа массива для отдельных символов в строках, и даже для тех, которые делают according to MDN, они поддерживают только доступ.
Причина, по которой вторая функция не работает, заключается в том, что когда вы передаете строку в .replace()
, она заменит только первый экземпляр и помещает его в цикл, это не поможет.
Вы можете легко достичь того же, используя regular expression в качестве первого параметра .replace() function, где использование регулярных выражений позволяет указать дополнительные параметры, такие как глобальное заменить (или вы можете сделать это случай insensitve заменить):
gene = gene.replace(/H/g, "G");
Если по какой-то причине вы действительно хотите, чтобы обработать строку сами Собирается посимвольно вы можете легко превратить его в массив с .split()
method, а затем, когда вы закончили включить его обратно в строку с .join()
method :
var gene="ATTAHATHHATTCGTA",
i,
geneArray = gene.split("");
for (i=0;i<geneArray.length;i++)
{
if(geneArray[i]=='H')
geneArray[i]='G';
}
gene = geneArray.join("");
(Очевидно, что вы бы не сделать это таким образом, когда .replace()
может сделать это для вас, но это всего лишь пример.)
Awesome, спасибо Джон, я изучаю новый г сегодня. – Mackintoast
И есть орфографическая ошибка: "для (; г
@Mackintoast: Пожалуйста, проверьте редактирование I только что сохраненный, в отношении регулярного выражения. – Jon