问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何动态创建和使用二维数组

发布网友 发布时间:2022-04-21 09:45

我来回答

2个回答

懂视网 时间:2022-05-18 23:09

本文实例讲述了JavaScript动态创建二维数组的方法。分享给大家供大家参考,具体如下:

学过C语言的我太耿直

一般这种情况下我会直接

var arr = new Array[10][10];

但是不出意外的话这样是会报错的,因为在js中根本没有这样的语法

在这之前,让我们先来回顾一下js中是怎么样创建一维数组的:

使用数组直接量,这个是最简单的,在方括号内将数组元素用逗号隔开即可:

var arr = [ ]; //空数组
var s = [1,2,3,4]; //4个元素的数组
var n = [1.1, false, "a", ]; //3个不同类型的元素和结尾的逗号

这样看来一维数组还是各种语言都通用的,Javascript不支持真正的多维数组,但可以用数组的数组来近似。访问数组的数组中的元素,只要简要地使用两次[ ]操作符即可。例如:

var arr = new Array(10); //表格有10行
for(var i = 0;i < arr.length; i++){
 arr[i] = new Array(10); //每行有10列
}

这样,一个神奇的有10行10列的数组就创建完成了。

补充:JS生成二维数组完整操作示例:

var arr = [];
var n=1;
for(var i = 0;i < 10; i++){
 arr[i] = []; //每行有10列
 for(var j = 0;j < 10; j++){
 arr[i][j] = n;
 n++;
 }
}
console.log(arr);

这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码,可得如下运行结果:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

热心网友 时间:2022-05-18 20:17

两种方法:
1.转化为一维数组申请
2.先申请全部行首指针,再按行逐行申请

1.
a=(int *)malloc(sizeof(int),(unsigned)m*n);
使用的时候就和一般的二维数组一样。
举个例子给你:
#include "stdlib.h"
#include "stdio.h"
#include <malloc.h>

int main()
{
int i,j;
int n;//这个就是需要指定的行数
int (*p)[10];

scanf("%d",&n);//取得行数

//动态生成二维数组,指定列数为10,如果想改,自己该里面
的参数,如果想定义n行2列就为: p=(int (*)[2])malloc(n*2*sizeof(int));
p=(int (*)[10])malloc(n*10*sizeof(int)); //动态申请n行10列的二维数组

for(i=0;i<n;i++)
for(j=0;j<10;j++)
p[i][j]=i*j;

for(i=0;i<n;i++)
{
for(j=0;j<10;j++)
printf("%d,",p[i][j]);

printf("\n");
}
free(p);

return 0;
}

2.
这个也给你举个例子吧:
#include <stdio.h>
#include <malloc.h>
main()
{
int i = 0;
int j = 0;
int line = 0;
int row = 0;
int **p = NULL;

printf("input the line of the array:\n");
scanf("%d", &line);
printf("input the row of the array:\n");
scanf("%d", &row);

p = (int **)malloc(sizeof(int *) * line);
if (NULL == p)
{
return;
}
for (i = 0; i < line; i++)
{
*(p + i) = (int *)malloc(sizeof(int) * row);
if (NULL == *(p + i))
{
return;
}
}
/*input data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
p[i][j] = i + 1;
}
}
/*output data*/
for (i = 0; i < line; i++)
{
for(j = 0; j < row; j++)
{
printf("%d", p[i][j]);
}
}
/*free every line point*/
for (i = 0; i < line; i++)
{
free(*(p + i));
p[i] = NULL;
}

free(p);
p = NULL;
}

第一种方法数组创建和释放都比较简单
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
idea community和idea有什么区别 美团生活费催收猛吗? 为什么美团生活费贷款不还钱会被催收? 电脑桌面图标有蓝色阴影如何去掉 给80多岁的老奶奶送什么生日礼物好,最好价钱在300左右 有谁可以给我出出主意,今年爷爷78岁生日,该送什么,要特别的 爷爷快78岁生日了,送什么礼物好呢 老父亲78岁大寿,送什么好呢? 爷爷78岁生日,我该送点什么? 中老年人生日送什么好啊。。。50-60 C语言 如何动态创建二维数组 c语言如何动态创建二维数组 java中的二维数组怎样创建? C语言如何建立一个二维数组 c语言怎么创建二维数组 如何让find命令遇到link时,搜索结果显示真实文件的相对路径 linux系统从一个文件夹的一个文件复制一个文件到另一文件夹 unix终端查看目录/home的状态命令是什么? link与connect的区别 sounalink mini开机没反应 react 怎么导入link的包 智能家居品牌排行推荐有哪些? 添加航旅纵横认证号是什么意思 东邦天下网的网址? 怎样进入我的e家 帮看下这句css中的波浪号是什么意思 盗墓笔记全集txt 顺便推荐小说(采纳一本20分) lianjia和homelink什么关系 HomeLink什么店中文 沃尔沃车上有homelink是什么意思?什么作用? 如何在python中创建二维列表 JAVA中如何创建一个二维数组,然后给二维数组赋值! 二维数组的创建方法 如何创建动态的二维数组? C++如何动态创建二维数组? C#创建2维数组 matlab二维数组的创建及其变换 ppt里要对图片进行说明 就是有箭头指向的文本框怎么弄 在C# 中, 怎么创建一个2维结构体呀! 怎样动态创建二维数组并初始化?c++ 【追加悬赏!】 ppt中如何在文本框中插入箭头 matlab 如何创建二维数组存储字符串 像PPT中这种小箭头和对话框怎么弄出来的,谢谢,,, 在C++如何函数中创建二维数组 如何在PPT文档中给图片添加文字标注 用CStringArray类怎样创建二维数组 ppt制作教程 关于3dsmax9.0:创建二维图形 在ppt中怎么让文本框和箭头合为一体 ppt中两个文本框怎么用箭头连接