今天在做一个时间处理的时候用到了 foreach , 然后就想说能不能用 map 来遍历 然后发现了这么个东西
很多介绍 map 的教程是这么说的
- const integers = [1, 2, 3, 4, 6, 7];
- const twoXIntegers = integers.map(i => i*2);
- // twoXIntegers are now [2, 4, 6, 8, 12, 14]
- // integers 数组并不会受到影响
事实确实如此, 打印出来 integers 数组并没有改变,
但是 下面这个情况就不一样
- let b = [{"time":1},{"time":"2"}] //[{"time":21},{"time":"3"}]
- let newb = b.map(a=>a.time=a.time+1) // [2,3]
当遍历的数组的是简单数据类型的时候原数组不变, 当遍历的是对象等复杂数据类型的时候原数组改变, 同时只返回 value 不返回 key(原因应该和内存有关, 数据结构没学好忘了先存着)
来源: https://www.2cto.com/kf/201802/717589.html