使用javascript更改数组中项的值

时间:2016-11-30 20:12:48

标签: javascript arrays equality indexof

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 ” “,你有什么想法吗?

2 个答案:

答案 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