有人可以用通俗的术语解释这个函数是如何工作的



所以我知道这段代码在做什么,它正在检查代码是否"统一",例如a,a,a,a,a,a1,1,1,1,1,1,如果不是,则返回一个错误陈述。但是,我不确定这个等式是如何工作的。大多数情况下,我对array[0]以及为什么变量i = 1感到困惑。有人可以带我了解这里到底发生了什么以及为什么会这样吗?

function isUniform(arr){
    var first = arr[0];
    for(var i = 1; i < arr.length; i++){
        if(arr[i] !== first){
            return false;
        }
    }
    return true;
}

使用//在代码中给出了注释,希望它有所帮助

function isUniform(arr){
    var first = arr[0]; //storing the first value in the array in variable 'first'
   //arr.length gives the number of elements in the array
   //looping between numbers 1 and the end of the length of array (array.length)
    for(var i = 1; i < arr.length; i++){ 
        if(arr[i] !== first){ //checking if current value (arr[i]) is equal to first value
            return false;//if it is not equal returning false and return ends the loop and function
        }
          //if all the values are equal the above if condition never runs
    }
    //if above if condition never runs, this statement runs and returns true
    return true; 
}

JavaScript 中的数组从零开始。因此,该行

var first = arr[0]

表示传递到数组中的 arr 参数的第一个元素。它永远不会改变。

循环

for(var i = 1; i < arr.length; i++)

遍历除第一个元素数组之外的所有元素数组,从第二个元素(arr[1])开始到最后一个元素。在此过程中,语句if(arr[i] !== first)简单地将每个数组元素(第一个除外)与存储在first中的第一个数组元素进行比较。如果任何一个不匹配,则返回 false,否则返回 true。如果输入数组是[1,2,3,4,5]的,则arr[0]=1, arr[1]=2, arr[2]=3...和第一个数组元素(和变量first)的值将被1,循环将迭代数组值的其余部分(2, 3, 4, and 5)。因此,它将在第一次迭代时返回 false,因为 1 不等于 2。

这个函数没有什么花哨或特别的,因为它所做的只是沿着数组的值向下走,比较元素。

首先,我们将数组的第一个元素存储到变量 first 中。 然后我们开始循环数组的其余元素(这就是为什么i1开头,因为没有必要将元素与自身进行比较)。如果当前元素arr[i]与第一个元素first不同(意味着数组不统一),则函数返回false(当函数返回时,它将立即退出,因此不会再与数组的其他元素进行比较)。如果我们遍历数组的所有元素并且我们退出循环,那么我们没有找到任何不同的值,因此数组是均匀的,因此我们返回true并退出函数。

JavaScript 中的长度不是从 0 开始的。因此,以下数组的长度为 4。

[1,2,3,4]
另一方面,数组

是基于 0 的,所以要获得这个数组的第 4 个元素,你需要做 arr[3],等于 4。方括号内的数字表示数组中的位置,而不是值。

最新更新