博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS编程建议——53:小心使用数组维度
阅读量:6134 次
发布时间:2019-06-21

本文共 1051 字,大约阅读时间需要 3 分钟。

建议53:小心使用数组维度

在JavaScript中,数组在默认状态下是不会初始化的。如果使用[]运算符创建一个新数组,那么此数组将是空的。如果访问的是数组中不存在的元素,则得到的值将是undefined。因此,在JavaScript程序设计中应该时刻考虑这个问题:在尝试读取每个元素之前,都应该预先设置它的值。但是,如果在设计中假设每个元素都从一个已知的值开始(如0),那么就必须预定义这个数组。我们也可以为JavaScript自定义一个静态函数:
Array.dim = function(dimension, initial) {

var a = [], i;for( i = 0; i < dimension; i += 1) {    a[i] = initial;}return a;

};

借助这个工具函数,可以轻松地创建一个初始化数组。例如,创建一个包含100个0的数组:
var myArray = Array.dim(100, 0);
JavaScript没有多维数组,但是它支持元素为数组的数组。
var matrix = [

[0, 1, 2], [3, 4, 5], [6, 7, 8]

];

matrix2 //7
为了自动化创建一个二维数组或一个元素为数组的数组,我们不妨这样做:
for( i = 0; i < n; i += 1) {

my_array[i] = [];

}

注意,Array.dim(n, [])在这里不能工作,如果使用它,每个元素都指向同一个数组的引用,那是非常糟糕的。
一个空矩阵的每个单元将拥有一个初始值undefined。如果希望它们有不同的初始值,必须明确地设置它们的值。因此,我们可以单独为Array定义一个矩阵数组定义函数。
Array.matrix = function(m, n, initial) {

var a, i, j, mat = [];for( i = 0; i < m; i += 1) {    a = [];    for( j = 0; j < n; j += 1) {        a[j] = initial;    }    mat[i] = a;}return mat;

};

下面就利用这个矩阵数组定义函数构建一个5×5的矩阵数组,且每个元素的初始值为0。
var myMatrix = Array.matrix(5, 5, 0);
document.writeln(myMatrix2); // 0

转载地址:http://asrua.baihongyu.com/

你可能感兴趣的文章
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
cmake总结
查看>>
数据加密插件
查看>>
linux后台运行程序
查看>>
win7 vs2012/2013 编译boost 1.55
查看>>
IIS7如何显示详细错误信息
查看>>
Android打包常见错误之Export aborted because fatal lint errors were found
查看>>
Tar打包、压缩与解压缩到指定目录的方法
查看>>
配置spring上下文
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
登记申请汇总
查看>>
Office WORD如何取消开始工作右侧栏
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
第一个应用程序HelloWorld
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Java并发编程73道面试题及答案
查看>>
企业级负载平衡简介(转)
查看>>