Javascript JS:在循环中使用i作为字符串的索引是返回一个整数,而不是字母

Javascript JS:在循环中使用i作为字符串的索引是返回一个整数,而不是字母,javascript,Javascript,学习JS/编程并完成一些基本练习 这是为了确定一个单词是否是回文(向前和向后读相同) 我的问题是,即使在我输入回文时,函数仍返回false。从逐级查看,似乎string[i]给出了一个要比较的整数,而不是当前索引中的字符 let input=“hannah”; 设firstCharacter=input[0]; 设lastIndex=input.length-1; 让lastCharacter=输入[lastIndex]; 函数测试(字符串){ 设j=string[lastIndex]; if

学习JS/编程并完成一些基本练习

这是为了确定一个单词是否是回文(向前和向后读相同)

我的问题是,即使在我输入回文时,函数仍返回
false
。从逐级查看,似乎
string[i
]给出了一个要比较的整数,而不是当前索引中的字符

let input=“hannah”;
设firstCharacter=input[0];
设lastIndex=input.length-1;
让lastCharacter=输入[lastIndex];
函数测试(字符串){
设j=string[lastIndex];
if(string.length%2==0)
{
对于(i=0;i一些想法:

  • 无需区分长度为奇数或偶数的字符串,使用从开始到结束计数的方法
  • 只有一个循环
  • 将索引保留到字符串的中间
  • 检查是否不相等,然后使用
    false退出函数
  • 如果到达函数末尾,则返回
    true
    ,因为字符串是回文
功能测试(字符串){
变量i,l;
对于(i=0,l=Math.floor(string.length/2);i
一些想法:

  • 无需区分长度为奇数或偶数的字符串,使用从开始到结束计数的方法
  • 只有一个循环
  • 将索引保留到字符串的中间
  • 检查是否不相等,然后使用
    false退出函数
  • 如果到达函数末尾,则返回
    true
    ,因为字符串是回文
功能测试(字符串){
变量i,l;
对于(i=0,l=Math.floor(string.length/2);ilog(palTest('foo');
您需要减少lastIndex,而不是最后一个索引的值

功能测试(字符串){
var lastIndex=string.length-1;//在此处初始化lastIndex
设j=string[lastIndex];
if(string.length%2==0){

对于(i=0;i您需要递减lastIndex,而不是最后一个索引的值

功能测试(字符串){
var lastIndex=string.length-1;//在此处初始化lastIndex
设j=string[lastIndex];
if(string.length%2==0){

对于(i=0;i我建议将逻辑简化一点,因为您只需要一个循环、一个变量,而不需要全局存储。只需循环一次,检查当前索引是否与结尾处的相同索引相等,如果不相等,则不是回文。即使字母的数量或数量不均匀,在这里也没有什么区别:

函数testPalindrome(字符串){
for(设i=0;ilog(testPalindrome('stackoverflow'));//false
我建议简化一下逻辑,因为你只需要一个循环,一个变量,而且不需要全局存储。只需循环一次,检查当前索引是否从结尾处等于相同的索引,如果不等于,就不是回文。即使字母的数量不均匀,在这里也没有什么区别:

函数testPalindrome(字符串){
for(设i=0;iconsole.log(testPalindrome('stackoverflow');//false
middleCharacter
是代码中的一个整数,是的。
string[middleCharacter]
将是一个字符。您想用元音检查什么?1。
让j=string[lastIndex];
,改为使用
let j=string.length-1
;仅在循环结束后返回true
middleCharacter
是代码中的整数,是。
string[middleCharacter]
将是一个字符。您想用元音检查什么?1。
let j=string[lastIndex];
,改为使用
让j=string.length-1
;仅在循环结束后返回true。这是一种更简洁的回文检查方法。非常简单。+1Damn这是一种更简洁的回文检查方法。非常简单。+1