既然你写了 NOOB,我认为说清楚很重要。
splice 方法从数组中指定索引处删除 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 部分将字符串转换为整数,这表明数组包含字符串而不是数字(或者可能包含字符串)。假设数组确实包含字符串,那么如果没有 parseInt 部分,它将比较字符串而不是数字,这是一种不同类型的比较。由于您没有显示数组的内容,因此很难确切知道它要做什么,但例如
"00" < "0000"
为真
parseInt("00") < parseInt("0000")
不正确。同样
"000_bob" < "000_jill" is true
但是
parseInt("000_bob") < parseInt("000_jill")
不正确
所以代码会检查第一个值是否小于第二个值,但它是通过整数而不是字符串进行比较。
其他人声称这是糟糕的代码,但在不知道它正在使用的上下文的情况下,它并不是糟糕的代码。