zoukankan      html  css  js  c++  java
  • 踩了数组的坑

    身为一个前端,对数据操作是很重要的;今天踩了一个坑,排查了很久;使用简单例子说明一下我的坑;

    let arr = new Array(3).fill([]) ;这时候arr是=  [[],[],[]]是一个包含三个空数组的数组;

    arr[0].push('1')原来以为得到[[1],[],[]],

    实际得到[[1],[1],[1]]。

    arr[1].push('2');arr[2].push('3'); 是得到[[1,2,3],[1,2,3],[1,2,3]]

    这个问题是因为对象和数组是指向类型,而不是值类型。

    简单的解决办法:

    在定义的时候let arr = new Array(3).fill(1) ;

    arr = arr.map(item=>{

    return [] })

    这样定义的话就不会出现上面的问题;

    大家可以试试。

  • 相关阅读:
    4-11
    4-10
    4-9
    4-7
    4-8
    4-6
    4-4
    4-5
    4-3
    4-2
  • 原文地址:https://www.cnblogs.com/wangxiaoer5200/p/11763416.html
Copyright © 2011-2022 走看看