多维数组
不存在真正意义的多维数据,实现的方式是数组的数组,直接上例子
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...)
用于在数据中插入或删除元素