多维数组
不存在真正意义的多维数据,实现的方式是数组的数组,直接上例子
var table = new Array(10);for (var i = 0; i < table.length; i++) { table[i] = new Array(10);}for ( var row = 0; row < table.length; row++) { for ( var col = 0; col < table[row].length; col++) { table[row][col] = row * col; }}var product = table[5][7]; //35
数组的方法
ECMAScript 3
1
Array.join(splitor)
返回所有数据中的元素值为字符串,然为用分隔符连接起来,默认用逗号(,)连接
例子
var a = [1, 2, 3]; // [1, 2, 3]a.join() // "1,2,3"a.join(' '); // "1 2 3"a.join(''); //"123"var b = new Array(10);b.join('-'); //"---------"
Array.join()是String.split()的逆方法
2
Array.reverse()
将数据逆序然后存储到原来的数组中
举例:
var a = [1, 2, 3]a.reverse().join() // "3,2,1"
3
Array.sort()
数组元素值排序,默认是转换成字符串后按照字母顺序排列,如果数据元素有值是undefined,则排到最后
举例
var a = new Array(undefined, 'banana', 'cherry', 'apple'); // ["banana", "cherry", "apple"]a.sort(); // ["apple", "banana", "cherry", undefined]
如果想自定义排序,则传递一个比较函数来自定义代码
举例
var a = [33, 4, 1111, 2222];a.sort(); // [1111, 2222, 33, 4]a.sort(function(a, b) { return a - b; }); // [4, 33, 1111, 2222]a.sort(function(a, b) { return b - a; }); // [2222, 1111, 33, 4]
如果想a比b小,那就返回小于0的数,反之大于0的数,如果相等返回0
更复杂点的例子
var a = ['ant', 'Bug', 'cat', 'Dog'];a.sort(); // ["Bug", "Dog", "ant", "cat"]a.sort(function(s, t) { var a = s.toLowerCase(); var b = t.toLowerCase(); if (a < b) return -1; if (a > b) return 1; return 0; });// ["ant", "Bug", "cat", "Dog"]
4
Array.concat()
返加新数组,类似于push方法,但不改变原数组的值,直接上例子
var a = [1, 2, 3]; // [1, 2, 3]a.concat(4, 5); // [1, 2, 3, 4, 5]a //[1, 2, 3]a.concat(4, 5); // [1, 2, 3, 4, 5]a.concat(4, 5); // [1, 2, 3, 4, 5]a.concat([4, 5]); // [1, 2, 3, 4, 5] ,如果传递的是数组,自动扁平化a.concat([9, [4, 5]]); // [1, 2, 3, 9, [4, 5]],但不会递归
5
Array.slice(start, end)
返回数组的一部分元素组成的数组,>=start但小于end
var a = [1, 2, 3, 4, 5];a.slice(0, 3); // [1, 2, 3]a.slice(3); // [4, 5]a.slice(1,-1); // [2, 3, 4]a.slice(-3, -2); // [3]
6
Array.splice(start, delcount, insert...)
用于在数据中插入或删除元素