评论

js经验分享之for循环区别

for 的简写分场合写才有用 否则就是坑

昨天在做删除列表功能时候碰到的坑  虽然很早以前知道 for(var i in arr)这种方法有坑  但是这么多年简写习惯了 就经常忽略了这个坑  昨天又碰到  特意分享给各位码友  下面我用几段代码举例


const arr = [2, 5];
      const arr2 = [2, 5];
      let list = ['张三', '李四', '王五', '张飞', '关羽', '刘备', '曹操'];
      let list2 = ['张三', '李四', '王五', '张飞', '关羽', '刘备', '曹操'];
      //若要从数组中删除下标为  arr 的值  即 王五  和   刘备
      // 使用for循环遍历  arr  在进行删除  利用常见的for循环删除
 
      /**
       * 方法1  得出结果 list为
       * 0    :   张三
       * 1    :   李四
       * 2    :   张飞
       * 3    :   关羽
       * 4    :   刘备
       *  并没有删除我们想要的值         
       * */
      for (var i in arr) {
          console.log(typeof(i)); //输出为string类型
          list.splice([arr[i]], 1);
          console.log(arr) //  输出得 [2, 5]和  [2, 5, 01: NaN]
          arr.length > 1 && i != arr.length - 1 ? arr[i + 1] -= 1 : '';
          arr.length - 1 == i && this.setData({
              list,
          })
      }
      /**
       * 方法2  得出结果 list2为
       * 0    :   张三
       * 1    :   李四
       * 2    :   张飞
       * 3    :   关羽
       * 4    :   曹操
       * 和我们期望相符合
       */
 
      for (var j = 0; j < arr2.length; j++) {
          console.log(typeof(j)); //输出为number
          list2.splice([arr2[j]], 1);
          console.log(arr2); //输出得 [2, 5] 和 [2, 4]
          arr2.length > 1 && j != arr2.length - 1 ? arr2[j + 1] -= 1 : '';
          arr2.length - 1 == j && this.setData({
              list2,
          })
      }

由此可得  在碰到需要下标进行运算时候就不要简写了           感谢你的耐心观看   希望对你有所帮助

点赞 3
收藏
评论

5 个评论

  • 风吹泡泡
    风吹泡泡
    2019-04-26

    用用 map() 会发觉更好用


    2019-04-26
    赞同
    回复
  • Steady
    Steady
    2019-04-19

    有删除的用filter

    2019-04-19
    赞同
    回复
  • ʚ菲你莫属ɞ
    ʚ菲你莫属ɞ
    2019-04-16

    for in 是用来遍历对象的  foreach才是遍历数组的

    2019-04-16
    赞同
    回复
  • 画甲
    画甲
    2019-04-16

    你好,我也是做了一个删除功能,数组里的删除了,但是页面上没有及时加载出来,请问这是为什么啊


    2019-04-16
    赞同
    回复 1
    • 唏嘘
      唏嘘
      01-13
      刚刚才看到   现在你应该解决了吧  应该是setData问题
      01-13
      回复
  • 天南地北
    天南地北
    2019-04-13

    for in 一般用于对象的遍历吧,一般遍历数组用的数for

    2019-04-13
    赞同
    回复
登录 后发表内容