React

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > React > React二维数组的几种声明

React二维数组的几种声明和使用过程

作者:魔猴疯猿

React二维数组声明需注意结构与值的可变性,正确方法包括直接赋值或动态初始化,避免使用const map=[[]]导致长度固定,动态扩展时应先定义一维数组再添加元素,确保数组大小可变

React二维数组的几种声明和使用

React中对二维数组的声明和使用的方式有多种,其中存在一些常见的错误使用情况。

例如const map=[[]] 这样定义二维数组,本篇文章给大家解析一下react数组使用的正确方法和错误使用的错误原因。

如果我们要使用的二维数组是有默认值的,那我们可以直接在声明时赋值,例如这样:

const map = [[1,2],[3,4],[5,6]];

这个map变量的值是可变的,但是它的结构是不可变的,要修改它可以这样写:

map[0] = [1,2,3]

但是,如果我们这样写就会报错:

map[3] = [1,2,3]

因为我们对map的定义初始化的时候,按照react的语法,只要值不为空,那么数组的大小就是不可变的,但是数组的值是可变的。所以我们给map[3]赋值,这个map[3]并不存在,map只有0到2三个值,就会报错。

但是对于map[0],[1,2]是它的一个值,这个值可以被整体替换为 [1,2,3],没有问题。

按这个道理

如果我们这样做也是会报数组溢出的:

map[3][4] = 1;

如果我们想要数组的大小动态可变怎么办呢,我们可以这样来初始化:

const map = []

这里把map首先定义为一个数组,这个时候[]内没有值,就代表这是一个没有初始值的数组,其数组大小不是0,而是不确定,可以动态赋值,例如:

map[0] = []

这里我们给map加了一个0号元素,值也是一个不确定大小的未初始化数组,这个数组也可以被动态添加值:

map[0] [0] = 1;

但是我们要注意,当map[0]被赋值时,map的大小才会扩展为1,如果没有给map[0]赋值,直接给map[1]赋值时是不能成功的:

按照这个理论

如果我们要初始化一个动态扩展的二维数组,我们应该这样做:

const map = [];
//在使用时,动态扩展
for(var i=0;i<count;i++){
   map[i] = [];
}

我们要给map定义为一个一维数组,然后动态添加数组元素作为其元素值。

注意,不能这样写:

const map = [[]];

看似定义了一个空的二维数组,实则不然,这个写法的意思是定义了一个数组,数组中只有一个数组类型的元素,外层[]中的[]代表了一个元素,相当于给了外层数组初始值,这个数组就不是动态可扩展的了,而是外层只能有一个元素,这时map[1]就是不存在也不可赋值的。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文