首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么这个二维数组出现错误?

为什么这个二维数组出现错误?
EN

Stack Overflow用户
提问于 2016-11-17 13:50:54
回答 3查看 73关注 0票数 1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var arr = [[],[]];
var si = 5;
var c  = 0;
if (arr[si][c] == null)
{
     arr[si][c] = {
           code : "Test",
     };
}
alert(arr[si][c].code);

您好,我正在尝试运行这个示例代码,但我得到一个错误,说未定义的属性"0“不能被调用。

令人尴尬的是,如果我使用数值而不是变量"si“和"c”作为索引,错误就不会出现!

有没有可能在JS中你不能使用变量作为索引?我认为它确实适用于非二维数组。

谢谢并致以最良好的问候

EN

回答 3

Stack Overflow用户

发布于 2016-11-17 13:53:41

JavaScript没有任何二维数组的概念。只是包含其他数组的数组。

arr[si][c]arr[5][0]

arr是一个具有两个成员(01)的数组,每个成员都是一个数组。

当你访问arr[5]时,你会得到undefined,因为你已经超越了end。

undefined[0]是一个错误。

令人尴尬的是,如果我使用数值而不是变量"si“和"c”作为索引,错误就不会出现!

如果您使用文字而不是变量,则会得到相同的错误。假设您的工作测试包含不同的数字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var arr = [[],[]];
if (arr[5][0] == null)
{
     arr[5][0] = {
           code : "Test",
     };
}
alert(arr[5][0].code);

票数 6
EN

Stack Overflow用户

发布于 2016-11-17 13:57:05

您可以先尝试检查arr[si].length-1是否大于或等于c。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if((arr[si].length-1)>c)
票数 0
EN

Stack Overflow用户

发布于 2016-11-17 14:00:49

您正在访问未定义的数组索引代码,即5,因为在定义arr中有两个元素[][],因此它将具有索引01,因此如果您将si设置为10,它将起作用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var arr = [[],[]];
var si = 1;
var c  = 0;
if (arr[si][c] == null)
{
     arr[si][c] = {
           code : "Test",
     };
}
alert(arr[si][c].code);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40656681

复制
相关文章
java二维对象数组_java 二维数组和对象数组
1 public classTestArray2 {2 public static voidmain(String[] args) {3 //二维数组不是规则的矩阵
全栈程序员站长
2022/06/28
2.9K0
java二维对象数组_java 二维数组和对象数组
java传递二维数组_java二维数组
1.InputMisMatchException 输入类型不匹配;int string
全栈程序员站长
2022/08/11
2.4K0
java传递二维数组_java二维数组
java二维数组坐标_Java 二维数组
因为数组只能保存一行数据。在生活中,比如坐标等等,我们需要用二维数组来表示。通过行号和列好来定位数据。
全栈程序员站长
2022/07/01
2.3K0
二维数组
二维数组可以存储具有二维关系的相同类型大量数据。二维数组在使用时需要两个下标才能确定数组的元素,其定义的一般形式如下:
pigeon
2022/04/11
1.5K0
二维数组
出现500错误
早上闲来无事,在cpanel后台转悠,看到了hotlink保护,想想是不是设置一下防盗链呢,这个博客开始到现在也没有几张有价值的图片,其实防盗链没所谓的,凑凑热闹设置一下,以前用过cpanel后台的免费空间,设置过hotlink,所以就没在意,设置完关掉了。
空空裤兜
2023/03/03
1.6K0
二维数组
2、数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
用户10731060
2023/08/29
1620
二维数组
新建JS文件 24-multi-array.js ,编写下方程序,运行看看效果吧。
鹤川
2023/03/21
1.2K0
二维数组
二维数组和指针_二维数组与指针
二维数组和指针⑴ 用指针表示二维数组元素。 要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行,我们就称之为行数组元素,显然每个行数组元素都是一个一维数组
全栈程序员站长
2022/11/17
1.4K0
C语言数组——二维数组
与一维数组的定义唯一的不同是多了一个常量表达式2,其中,常量表达式1为第一维的长度,常量表达式2为第二维的长度。通常在处理二维数组的时候,为了便于理解,都将数组视为一个矩阵,常量表达式1表示矩阵的行数,而常量表达式2表示矩阵的列数。与一维数组一样,在定义二维数组时,常量表达式同样不能为变量。下面先通过一段代码来看二维数组的定义。
C语言中文社区
2022/05/30
8.2K1
C语言数组——二维数组
java交换二维数组行列_java二维数组行列
培训系列AmberXie 求二维数组行列之和把二维数组 a 各行之和分别放入 b…
全栈程序员站长
2022/06/26
1.9K0
【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
定义一个函数 , 函数接收一个 int* 形参指针 , 使用该指针访问二维数组中的元素个数 , 也可以成功访问 ;
韩曙亮
2023/03/29
2.5K0
【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )
二维变长数组
/* * 数组内元素的位置是不变的,只是数组容量的大小发生了变化。 * 简单来说,就是将数组的左上角元素平移到新数组的相同位置。 * */ template<class T> void changeLength2D(T**& a,int oldRows int copyRows,int copyColumns, int newRows,int newColumns) { if(copyRows > newRo
青木
2018/05/28
1.1K0
交换二维数组
沿对角线交换NxN的二维数组的行、列数据 对角线往右的点,才需要交换;往左的点不用交换,避免重复交换。 public class Main { private void print(int[]
小锋学长生活大爆炸
2020/08/28
1.1K0
二维数组使用
上面的代码相当于定义了一个3*4的二维数组,即二维数组的长度为3,二维数组中的每个元素又是一个长度为4的数组,接下来通过一个图来表示这种情况,如下图所示。
星哥玩云
2022/09/14
6570
二维数组使用
5.2 二维数组
为了让大家有个明确的学习方向,请大家分享给有需要的人,谢谢! 一、定义二维数组 一般形式 类型说明符 数组名[常量表达式][常量表达式] 注意:用矩阵形式表示二维数组,是逻辑上的概念,能形象的表示
小林C语言
2019/08/19
7810
6.2 二维数组
3、用矩阵形式表示二维数组,是逻辑上的概念,能形象地表示出行列关系,而在内存中,各元素是连续存放的,不是二维的,是线性的。
小林C语言
2020/12/07
6770
6.2 二维数组
【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
指针数组 的 结构特征 是 , 数组中的每个元素 , 即每个指针变量 可以 指向不同大小的 内存块 ;
韩曙亮
2023/03/29
1.6K0
【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
全栈程序员站长
2022/07/07
6940
二维数组打印
  有一个二维数组,我想打印它,该怎么做呢? int a[5][5] = { {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5}, };   君君常规操作: for(int i = 0; i < 5; i+
Qt君
2023/03/17
7850
二维数组打印
Java数组(二维数组)「建议收藏」
在上一篇文章Java数组(一维数组)中,我们学习了一维数组,那么今天我们来学习Java二维数组。
全栈程序员站长
2022/09/08
6560

相似问题

为什么这个多维数组会出现分段错误?

11

为什么这个char数组会出现Seg错误

10

为什么会出现这个错误?

10

为什么会出现这个错误?

20

为什么会出现这个错误?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文