• 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()方法 可以深复制,摆脱与之前数组的关联性
    
    记下,以便不时之需
    
  • 相关阅读:
    十一月计划
    归并排序+例题
    今年暑假不AC(简单贪心)
    路障(BFS)
    堆优化版Dijkstra模板
    十月计划
    Find a way(BFS)
    Prime Path(BFS)
    Find The Multiple
    k8s中node节点资源不足
  • 原文地址:https://www.cnblogs.com/zddzz/p/11101816.html
Copyright © 2020-2023  润新知