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] = itemreturn arr})
})
console.log(lastArr);
console.log(b);关键在于这个slice()方法 可以深复制,摆脱与之前数组的关联性记下,以便不时之需
转载于:https://www.cnblogs.com/zddzz/p/11101816.html
js操作改变原数组的解决方法相关推荐
- js中改变原数组的方法以及解决改变原数组的方法
js中改变原数组的方法以及解决改变原数组的方法 参考文章: (1)js中改变原数组的方法以及解决改变原数组的方法 (2)https://www.cnblogs.com/Ingots/p/1151701 ...
- 不改变原数组的一些方法
改变原数组 push / pop / shift / unshift / sort / reverse / splice 不改变原数组 concat / join --> split / toS ...
- js不改变原数组的情况,添加或删除指定的元素
通过扩展运算符和fliter来达到不改变原数组的情况下,添加和删除元素 1.添加元素 var numList = [1, 2, 3, 4, 5, 6, 7, 8, 9]// 第一种方案 functio ...
- JS数组方法中哪些会改变原数组,哪些不会?
前言 作为一名前端开发人员,我们每天都会与数组打交道.JS 也提供了很多操作数组的原生 API 供我们调用.在这些方法里面,有的方法会改变原数组,有些不会改变原数组.别看这一点小小的区别,往往会造成巨 ...
- html设置数组的方法,js改变原数组的方法有哪些?
js改变原数组的方法 1.pop() pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 un ...
- JS中会改变原数组和原字符串的API方法总结
1.会改变原数组的方法 arr.push(item1,item2,·····,itemx) arr.pop() arr.unshift(item1,item2,·····,itemx) arr.shi ...
- js数组方法-改变原数组和不改变原数组的方法整理
改变原数组: pop(): 删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 undefined ...
- js中会改变原数组的方法及不改变原数组的方法整理
改变原数组: 1.pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值. ...
- js 数组操作方法(不改变原数组与改变原数组方法)
一: 不改变原数组的方法 1. concat() 方法用于连接两个或多个数组 let a =[1,2,3], b=[4,5,6]; let c = a.concat(b); console.log(a ...
最新文章
- 简单排查定位linux系统的性能瓶颈
- 单元测试如何保证了易用的API
- div+css相对定位和绝对定位
- php正则判断字符串是否含有中文
- 深刻理解:C#中的委托、事件
- 《图解CSS3:核心技术与案例实战》
- shell+html+div+css实现数据库冷备文件检查
- Mimikatz 非官方指南和命令参考_Part1
- 探究requestDisallowInterceptTouchEvent失效的原因
- 非系统盘根目录出现Msdia80.dll文件如何处理
- 最小割集stoer_wagner算法
- 标准SPI、DUAL SPI、Quad SPI;NorFlash、NandFlash、eMMC闪存的比较与区别
- java正则表达式逗号_java – 接受逗号或分号分隔值的正则表达式模式
- dos u盘测试软件,u盘DOS启动盘制作工具(BootFlashDos)
- 【NLP】中文分词方法:规则分词(正向最大匹配、逆向最大匹配、双向最大匹配)
- http 阮一峰_JavaScript 标准参考教程(alpha) 阮一峰
- 问题——Word中一级标题离页眉很近
- GIC/ITS代码分析(1)MADT表
- win11断网自动重启
- iview button根据条件 disabled可用或者不可用
热门文章
- 【原创】大叔经验分享(33)hive select count为0
- 「PKUSC2018」星际穿越 (70分做法)
- WCF系列之.net(3.0/3.5)Rest使用示例
- Silverlight Dispatcher 类
- LINUX操作系统手机刷机包制作、修改方法
- 802.11b标准简介
- 多文件目录下makefile文件递归执行编译所有c文件 很不错
- 10.14.2 快捷键,环境变量等
- python字典值的和计算_第一章Python数据结构和算法(字典的运算)
- Cow Toll Paths(floyd变形)