Javascript 有人能用外行的术语解释一下这个函数是如何工作的吗?

Javascript 有人能用外行的术语解释一下这个函数是如何工作的吗?,javascript,arrays,algorithm,Javascript,Arrays,Algorithm,所以我知道这个代码在做什么,它检查代码是否是“统一的”,例如a,a,a,a,a,a或1,1,1,1,1,1,如果不是,它返回的是错误的语句。然而,我不确定这个等式是如何运作的。大多数情况下,我对数组[0]以及变量为什么是I=1感到困惑。有人能告诉我这里到底发生了什么,为什么会这样吗 function isUniform(arr){ var first = arr[0]; for(var i = 1; i < arr.length; i++){ if(arr[

所以我知道这个代码在做什么,它检查代码是否是“统一的”,例如
a,a,a,a,a,a
1,1,1,1,1,1
,如果不是,它返回的是错误的语句。然而,我不确定这个等式是如何运作的。大多数情况下,我对
数组[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;
}
函数是统一的(arr){
var first=arr[0];
对于(变量i=1;i
JavaScript中的数组是基于零的。所以这条线

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

环路

for(var i = 1; i < arr.length; i++)
for(变量i=1;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和5
)。因此,在第一次迭代时它将返回false,因为1不等于2


这个函数没有什么特别之处,因为它所做的只是遍历数组的值,比较元素。

JavaScript中的数组是基于零的。所以这条线

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

环路

for(var i = 1; i < arr.length; i++)
for(变量i=1;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和5
)。因此,在第一次迭代时它将返回false,因为1不等于2


这个函数没有什么特别之处,因为它所做的只是遍历数组的值,比较元素。

javascript中的长度不是基于0的。因此,下面的数组的长度为4

[1,2,3,4]

另一方面,数组是基于0的,所以要得到这个数组的第四个元素,需要执行arr[3],它等于4。方括号内的数字表示数组中的位置,而不是值。

javascript中的长度不是基于0的。因此,下面的数组的长度为4

[1,2,3,4]

另一方面,数组是基于0的,所以要得到这个数组的第四个元素,需要执行arr[3],它等于4。方括号内的数字表示数组中的位置,而不是值。

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

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; 
}
函数是统一的(arr){
var first=arr[0];//将数组中的第一个值存储在变量“first”中
//arr.length给出数组中的元素数
//在数字1和数组长度(array.length)末尾之间循环
对于(var i=1;i
已经使用
/
在代码中给出了注释,希望对您有所帮助

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; 
}
函数是统一的(arr){
var first=arr[0];//将数组中的第一个值存储在变量“first”中
//arr.length给出数组中的元素数
//在数字1和数组长度(array.length)末尾之间循环
对于(var i=1;i
首先,我们将数组的第一个元素存储到变量
First
中。然后我们开始循环数组的其余元素(这就是为什么
i
1
开始,因为不需要将元素与自身进行比较)。如果当前元素
arr[i]
与第一个元素
first
不同(表示数组不一致),函数返回
false
(当函数返回时,它将立即退出,因此不会与数组的其他元素进行更多比较)。如果我们在数组的所有元素上循环,并且我们从循环中出来,那么我们没有找到任何不同的值,因此数组是一致的,因此我们返回
true
并退出函数。

首先,我们将数组的第一个元素存储到变量
First
中。然后我们开始循环数组的其余元素(即