关于数组数据容易忽略的点
1. reduce((累积变量,当前变量,当前位置,原数组) => (), 设置初始累积变量)
注意:
1)空数组不能调用该方法,会报错:找不到初始变量
所以,上面累积变量和设置的初始累积变量至少要有一个,否则报错
2)当数组长度为1时,调用该方法不会执行,直接返回数组中的元素,数组中是什么返回什么。
[null].reduce(() => ()) ---> null
2.清空数组的方法
arr.length = 0;
3.数组的长度
arr.length的最大值是2**32 - 1;如果大于这个值,则无效!
4.数组本身就是一种对象!
数组的赋值也是地址赋值,如果数组同时赋值给两个变量。其中一个变量改变的同时,另一个变量随之改变。
yield put({ type: 'save', payload: { mapTreeData: newResponse, initMapTreeData: JSON.parse(JSON.stringify(newResponse)) } }); // 如上: 当我们需要保留一个返回数据的原始值时,一般会设两个变量,一个用来操作数据,一个用来保存原始值。
注意⚠️: 如果保留初始值的变量不使用深拷贝,那么该值将会随另一个值变化,起不到应有的作用!!!!