JS编程建议——53:小心使用数组维度

简介: 53:小心使用数组维度

建议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

相关文章
|
3月前
|
存储 JavaScript 前端开发
JavaScript编程实现tab选项卡切换的效果+1
JavaScript编程实现tab选项卡切换的效果+1
|
1月前
|
自然语言处理 JavaScript 前端开发
JavaScript闭包:解锁编程潜能,释放你的创造力
【10月更文挑战第25天】本文深入探讨了JavaScript中的闭包,包括其基本概念、创建方法和实践应用。闭包允许函数访问其定义时的作用域链,常用于数据封装、函数柯里化和模块化编程。文章还提供了闭包的最佳实践,帮助读者更好地理解和使用这一强大特性。
17 2
|
2月前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
29 2
|
2月前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
25 3
|
2月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
38 4
|
2月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
40 1
|
2月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
25 5
|
2月前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
19 3
|
2月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
46 1
|
2月前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
23 0