JavaScript数组特性与实践应用深入详解(2)

//创建数字数组 var data = [9, 16, 32, 192, 8]; //定义加法与乘法函数 var add = function (a, b) { return a + b; }; var mult = function (a, b) { return a * b; }; console.log(data.reduce(add, 0));//257 console.log(data.reduce(mult, 1));//7077888

因为数组就是对象,所以也可以直接给数组添加方法:

data.total = function () { return this.reduce(add, 0); }; console.log(data.total());//257

因为字符串 “total” 不是整数,所以不会改变数组的 length 值。当属性名是字符串时,它就会成为数组的属性。

7 指定初始值

如果使用 [] 得到的新数组,它将是空的。这是如果访问它,将会得到 undefined。我们可以实现一个可以初始化数组元素值的方法:

//为每一个元素指定初始值 Array.dim = function (dimension, initial) { var a = [], i; for (i = 0; i < dimension; i += 1) { a[i] = initial; } return a; }; //创建包含 10 个 0 的数组 var myArray = Array.dim(10, 0); console.log(myArray);//[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]

JavaScript 数组的元素可以是数组,通过这种方式来实现多维数组功能:

//数组的数组 var matrix = [ [0, 1, 2], [3, 4, 5] ]; console.log(matrix[1][0]);//3

可以扩展 Array 方法,让它可以初始化矩阵:

/** * * @param m 第一维个数 * @param n 第二维个数 * @param initial 初始值 */ 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; }; //构造 0 填充的 4*4 矩阵 console.log(Array.matrix(4, 4, 0)); //构造单元矩阵 Array.identity = function (n) { var i, mat = Array.matrix(n, n, 0); for (i = 0; i < n; i += 1) { mat[i][i] = 1; } return mat; }; var myMatrix = Array.identity(4); console.log(myMatrix); console.log(myMatrix[3][3]);//1

感兴趣的朋友还可以使用本站在线HTML/CSS/JavaScript代码运行工具测试上述代码运行结果。

更多关于JavaScript相关内容还可查看本站专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/13ccdd389c0e6a75cba7870a454c5c9c.html