为你什么事1,3,5,7,9

来源:2-2 [JavaScript]运算符

web_東

2018-07-10 00:31

https://img4.mukewang.com/5b438d3000013dbb06140499.jpg

我理解的是1,2,3,4,5,67,8,9,

写回答 关注

2回答

  • WingMeng
    2018-07-11 19:21:58

    ++i 的效果等价于 i = i + 1,所以 n[i] = ++i 这样会直接影响到 for 循环里 i 的值,for 循环实际只循环了 5 次,i 的值依次为 0, 2, 4, 6, 8:

    // 第1次。上一次 i 的值为 0,i 在循环初始 (0++) 为 0
    n[0] = (i = 0 + 1);
    // 此时 i 变成了 1; n 为 [1]
    
    // 第2次。上一次 i 的值为 1,i 在循环初始 (1++) 为 2
    n[2] = (i = 2 + 1);  // 跳过了 n[1]
    // 此时 i 变成了 3; n 为 [1, empty, 3]
    
    // 第3次。上一次 i 的值为 3,i 在循环初始 (3++) 为 4
    n[4] = (i = 4 + 1);  // 跳过了 n[3]
    // 此时 i 变成了 5; n 为 [1, empty, 3, empty, 5]
    
    // 第4次。上一次 i 的值为 5,i 在循环初始 (5++) 为 6
    n[6] = (i = 6 + 1);  // 跳过了 n[5]
    // 此时 i 变成了 7; n 为 [1, empty, 3, empty, 5, empty, 7]
    
    //  第5次。上一次 i 的值为 7,i 在循环初始 (7++) 为 8
    n[8] = (i = 8 + 1);  // 跳过了 n[7]
    // 此时 i 变成了 9; n 为 [1, empty, 3, empty, 5, empty, 7, empty, 9]
    
    //  第6次。上一次 i 的值为 9,i 在循环初始 (9++) 为 10,不满足 i < 10 的条件,for 循环结束。


  • WingMeng
    2018-07-10 13:46:32

    问题出在第14行:

    n[i] = ++i;

    ++i 是自增运算,表示 i 先自加1,然后再赋值给 i,这样 i 的值从每次都会自加1,从而导致数组 n 的索引不是连续的。改成下面这样即可输出你要的效果:

    n[i] = i + 1;


    web_東

    难到它也递增?

    2018-07-10 22:54:40

    共 2 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281099 学习 · 1020 问题

查看课程

相似问题