Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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代码片段吗?(NOOB)_Javascript_Arrays - Fatal编程技术网

有人能解释一下下面的javascript代码片段吗?(NOOB)

有人能解释一下下面的javascript代码片段吗?(NOOB),javascript,arrays,Javascript,Arrays,该代码是返回数组中最大数字的程序的一部分。有人能解释一下吗?谢谢 if (parseInt(nums[0]) < parseInt(nums[1])) { nums.splice(0,1); } else { nums.splice(1,1); } if(parseInt(nums[0])

该代码是返回数组中最大数字的程序的一部分。有人能解释一下吗?谢谢

  if (parseInt(nums[0]) < parseInt(nums[1])) { nums.splice(0,1); }
        else { nums.splice(1,1); }
if(parseInt(nums[0])
最基本的是理解

因此,它将根据传递的参数删除项目,从而修改数组

阵列拼接(开始[,删除计数[,项目1[,项目2[,…]))

var nums=[“2”,4];
if(parseInt(nums[0])log(nums)//修改数组
最基本的是理解

因此,它将根据传递的参数删除项目,从而修改数组

阵列拼接(开始[,删除计数[,项目1[,项目2[,…]))

var nums=[“2”,4];
if(parseInt(nums[0])console.log(nums)//修改了数组
,因为您编写了NOOB,我认为澄清这一点很重要

该方法在指定索引处从数组中删除0个或多个项,并在该索引处插入0个或多个项

签名是
someArray.splice(startNdx,deleteCount[,…itemsToInsert])

在您发布的代码中,此部分

nums.splice(0,1);
从索引0开始,从数组中删除1个元素。换句话说,如果数组是
[5,6,7]
,它将变成
[6,7]

nums.splice(1,1);
这部分从索引1开始,从数组中删除1个元素。换句话说,如果数组是
[5,6,7]
,它将变成
[5,7]

这些部分将字符串转换为整数,表示数组包含字符串而不是数字(或者可以选择包含字符串)。假设数组确实包含字符串,那么如果没有
parseInt
部分,它将比较字符串而不是数字,这是一种不同的比较类型。因为您没有显示数组的内容,所以很难确切地知道它试图做什么,例如

"00" < "0000"  
“00”<“0000”
是真的吗

parseInt("00") < parseInt("0000") 
parseInt(“00”)
事实并非如此。同样地

"000_bob" < "000_jill" is true
“000\u bob”<“000\u jill”是真的
但是

parseInt(“000_bob”)
事实并非如此

因此,代码正在检查第一个值是否小于第二个值,但它是按整数而不是字符串进行比较的


其他人声称这是错误的代码,但在不知道使用它的上下文的情况下这不是错误的代码

既然你写了NOOB,我想说清楚是很重要的

该方法在指定索引处从数组中删除0个或多个项,并在该索引处插入0个或多个项

签名是
someArray.splice(startNdx,deleteCount[,…itemsToInsert])

在您发布的代码中,此部分

nums.splice(0,1);
从索引0开始,从数组中删除1个元素。换句话说,如果数组是
[5,6,7]
,它将变成
[6,7]

nums.splice(1,1);
这部分从索引1开始,从数组中删除1个元素。换句话说,如果数组是
[5,6,7]
,它将变成
[5,7]

这些部分将字符串转换为整数,表示数组包含字符串而不是数字(或者可以选择包含字符串)。假设数组确实包含字符串,那么如果没有
parseInt
部分,它将比较字符串而不是数字,这是一种不同的比较类型。因为您没有显示数组的内容,所以很难确切地知道它试图做什么,例如

"00" < "0000"  
“00”<“0000”
是真的吗

parseInt("00") < parseInt("0000") 
parseInt(“00”)
事实并非如此。同样地

"000_bob" < "000_jill" is true
“000\u bob”<“000\u jill”是真的
但是

parseInt(“000_bob”)
事实并非如此

因此,代码正在检查第一个值是否小于第二个值,但它是按整数而不是字符串进行比较的


其他人声称这是错误的代码,但在不知道使用它的上下文的情况下这不是错误的代码

它正在删除较小的值。。。除非在数组
[4.999,4]
上尝试此操作会失败,因为这些值被解释为整数。所以这不是很好的代码。它还修改数组以获得聚合值,这也是不好的做法。它正在删除较小的值。。。除非在数组
[4.999,4]
上尝试此操作会失败,因为这些值被解释为整数。所以这不是很好的代码。它还修改数组以获得聚合值,这也是不好的做法。@gman否。对于问题中的代码段,对副作用的描述是准确和全面的。当链接中有很好的文档时,就不需要解释函数没有做的事情了。@gman没有。就问题中的代码片段而言,对副作用的描述是准确而全面的。当链接中有非常好的文档时,就不需要解释函数在这里没有做的事情。