zoukankan      html  css  js  c++  java
  • js操作改变原数组的解决方法

    最近在开发的时候发现js中的循环操作会改变原数组,var一个变量承接也不行

    甚至连map方法都会改变原数组,下面是解决方法

    let a = ['a','b','c']
    let b = [[2, 0, 0],[0, 0, 0],[2, 2, 0],[1, 0, 0],[0, 1, 2]]
    //需求   将a b数组操作变成下面的样子
    // [
    //     [['a', 0, 0],['a', 0, 0],['a', 2, 0],['a', 0, 0],['a', 1, 2]],
    //     [[2, 'b', 0],[0, 'b', 0],[2, 'b', 0],[1, 'b', 0],[0, 'b', 2]],
    //     [[2, 0, 'c'],[0, 0, 'c'],[2, 2, 'c'],[1, 0, 'c'],[0, 1, 'c']]
    // ]
    
    
    let lastArr = a.map((item,index,arr)=>{
       return b.map((item1,index1,arr1)=>{
           var arr = item1.slice();
           arr[index] = item
           return arr
       })
    })
    console.log(lastArr);
    console.log(b);
    
    关键在于这个slice()方法 可以深复制,摆脱与之前数组的关联性
    
    记下,以便不时之需
    
  • 相关阅读:
    ASP.NET 2.0
    PHP
    SQL 查询逻辑处理顺序
    LEETCODE
    网络学习课程资源
    概率论
    集合论
    图论
    《组合数学》
    离散数学
  • 原文地址:https://www.cnblogs.com/zddzz/p/11101816.html
Copyright © 2011-2022 走看看