var num = [ 5 ];
var row = [0, 1, 2, 3, 4, 5];
row[4] = num
alert (num.indexOf(row[4])); /* alerts: -1 */
alert (num.indexOf(row[0])); /* alerts: -1 */
alert (row[4]); /* alerts: 5 */
alert (row); /* alerts: 0, 1, 2, 3, 5, 5 */
我不明白为什么前两个警报分别返回“ -1 ”而不是“ 5 ”和“ 0 ” “,你有什么想法吗?
答案 0 :(得分:2)
<强>第1行:强>
row[4] = num
<强> LINE2:强>
alert (num.indexOf(row[4])); /* alerts: -1 */
<强> line3中:强>
alert (num.indexOf(row[0])); /* alerts: -1 */
第1行执行后您可能认为
row[4] = [5]
而不是5 indexOf 返回-1
现在,第二部分:
num
仍然是[5]
,那么 row [0] 的索引是什么,或者该变量中0的索引是什么?也是-1(因为该值不存在于该数组中)
答案 1 :(得分:1)
row[4] = 4
num
不包含值4
,因此返回-1
(-1表示数组中没有此类项目)
同样适用于num.indexOf(row[0])
arrayToLookThru.indexOf(valueToLookFor)
- 这是它的工作原理。
indexOf
返回具有给定值的第一个元素的位置,如果找不到元素则返回-1
。