Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的for循环会在评估所有内容之前停止?_Javascript - Fatal编程技术网

Javascript 为什么我的for循环会在评估所有内容之前停止?

Javascript 为什么我的for循环会在评估所有内容之前停止?,javascript,Javascript,我试图从两个3位数的乘积中得到最大的回文。如果你不知道,回文是一个向前和向后相同的数字(例如:9009或55855等) 我的方法是循环遍历所有三位数字并将它们相乘,如果乘积与自身匹配,则使用该乘积更新变量“回文”。我预计是906609,但现在是99999 在这件事上我绞尽脑汁,没发现什么不对劲,但很明显有些东西。有什么想法吗 //Hoist 'palindrome' var palindrome = 0; //Loop through 100 - 1000 for(var i = 100; i

我试图从两个3位数的乘积中得到最大的回文。如果你不知道,回文是一个向前和向后相同的数字(例如:9009或55855等)

我的方法是循环遍历所有三位数字并将它们相乘,如果乘积与自身匹配,则使用该乘积更新变量“回文”。我预计是906609,但现在是99999

在这件事上我绞尽脑汁,没发现什么不对劲,但很明显有些东西。有什么想法吗

//Hoist 'palindrome'
var palindrome = 0;

//Loop through 100 - 1000
for(var i = 100; i < 1000; i++) {

    //Within that loop, loop through 100 - 1000
    for(var k = 100; k < 1000; k++) {

        //Convert product of K & I and reverse to strings
        var product = (k * i).toString(); 
        var reversed = product.match(/.{1}/g).reverse().toString().replace(/,/g, '');

        //If the product and reverse are the same, update palindrome
        if(product === reversed) {
            if(reversed > palindrome) {
                var palindrome = product;
            }
        }
    }
}

//Expecting 906609, but returns 99999
console.log(palindrome)
//提升“回文”
var回文组=0;
//循环通过100-1000
对于(变量i=100;i<1000;i++){
//在这个循环中,循环100-1000次
对于(变量k=100;k<1000;k++){
//将K&I和反向的乘积转换为字符串
var乘积=(k*i).toString();
var reversed=product.match(/。{1}/g).reverse().toString().replace(/,/g');
//如果产品和反面相同,则更新回文
如果(产品===反向){
如果(反转>回文){
var回文组=乘积;
}
}
}
}
//应为906609,但返回99999
console.log(回文)
因为

 "99999" > "906609" // true
在比较字符串时,会按词汇进行比较。您要比较数字:

 if(+reversed > +palindrome)
因为

 "99999" > "906609" // true
在比较字符串时,会按词汇进行比较。您要比较数字:

 if(+reversed > +palindrome)

在你发布lol的时候就发现了,谢谢。不过,我使用Number()实现了它,Number(反向)>Number(回文)。但你绝对正确,这就是为什么。现在开始工作:)当你发布lol时,我就明白了,谢谢。不过,我使用Number()实现了它,Number(反向)>Number(回文)。但你绝对正确,这就是为什么。现在开始工作:)@quentin 913*993@昆汀913*993。。。