【问题标题】:Why does it give that result?为什么会给出这样的结果?
【发布时间】:2018-06-16 21:01:42
【问题描述】:

它给出了两个不同的输出,有什么解释为什么会这样吗?

我需要它作为 if 语句,它给出了一个结果,而该语句不正确(我认为)

var input = prompt("Enter a string to check whether it is a Prime String or not");
function isPrime(str, d){
    var arr = Array.from(str);
    var len = arr.length ;
    //DeBugging   beg
    // arr equals to jkjkjk
    console.log(arr, arr.reverse());
    console.log(arr.reverse());
    console.log( arr == arr.reverse());
    //DeBugging   end
    if(arr == arr.reverse()){
        return true;
    }else{
        var arr2 = [];
        for(var i = 0 ; i < len ; i + d){
            arr2.push(arr.slice(i, i+d));
        }
        console.log(arr2); 
    }
}
isPrime(input,2);

【问题讨论】:

标签: javascript console


【解决方案1】:

根据documentationreverse 方法改变了数组中包含的值的顺序,但数组还是一样的,只是变异了。

【讨论】:

  • 但是我不是和同一个数组比较(...... == arr),我是在比较它的倒数(...... ==arr .reverse()).
  • @BRKOTTA let a = [1], b = a; b[0] = 2; console.log(a === b); - 也许这个例子会对你有所帮助。
  • 这是因为 b = a 吗?
  • 这是否意味着a在整个程序中始终与b相同?
  • ba 在该示例中只是对同一数组的引用。您的反向数组也是如此。你也可以试试这个:let a = [1, 2], b = a.reverse(); console.log(a);
猜你喜欢
  • 1970-01-01
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 2016-04-01
  • 1970-01-01
相关资源
最近更新 更多