1、一维数组
(1) var numbers = new Array(); (2)var numbers = new Array(7); (3) var numbers = new Array(1,2,3,4);
var numbers = [0,1,2,3,4,5,6,7,8,9];
添加数组的结尾: numbers[numbers.length] = 10; (或者) numbers.push(11,12,13);
将数值添加到数组的首端: numbers.unshift(-1,-2)
删除最后一个: numbers.pop();
删除首端元素: numbers.shift();
删除索引为2的位置开始的2个元素: numbers.splice(2, 2)
splice方法接收的第一个参数,表示想要删除或插入的元素的索引值。第二个参数是删除
元素的个数。第三个参数往后,就是要添
加到数组里的值;例如: numbers.splice(5,0,2,3,4);这个就表示索引5的位置开始,删除0个元素,然后在其后面插入2,3,4三个元素
* 在js中数组是没有长度限制的,可以无限添加,但是在C和Java中定义数组的时候就要先定义数组的长度。
2、二维多维数组
//二维数组 var array2 = []; for (var i = 0; i < 4; i++) { array2[i] = []; for (var j = 0; j < 4; j++) { array2[i][j] = i + j; } } console.log(array2); //三维数组 var matrix3x3x3 = []; for (var i = 0; i < 3; i++) { matrix3x3x3[i] = []; for (var j = 0; j < 3; j++) { matrix3x3x3[i][j] = []; for (var z = 0; z < 3; z++) { matrix3x3x3[i][j][z] = i + j + z; } } } console.log(matrix3x3x3);
3、JavaScript 的数组方法参考
concat 连接2个或更多数组,并返回结果
every 对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
filter 对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach 对数组中的每一项运行给定函数。这个方法没有返回值
join 将所有的数组元素连接成一个字符串
indexOf 返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf 返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse 颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在
的第一个
slice 传入索引值,将数组里对应索引范围内的元素作为新数组返回
some 对数组中的每一项运行给定函数,如果任一项返回true,则返回true
sort 按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
toString 将数组作为字符串返回
valueOf 和toString类似,将数组作为字符串返回
// 数组合并 concat var zero = 0; var positiveNumbers = [1, 2, 3]; var negativeNumbers = [-3, -2, -1]; var numbers = negativeNumbers.concat(positiveNumbers); console.log(numbers)
//every var isEven = function (x) { // 如果x是2的倍数,就返回true // console.log(x); return (x % 2 == 0) ? true : false; // 也可以写成return (x % 2 == 0) ? true : false }; var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; console.log(numbers.filter(isEven))
//排序 var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; numbers.sort(); console.log(numbers)//结果(15) [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]
//sort方法在对数组做排序时,把元素默认成字符串进行相 互比较。
//排序 var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; // numbers.sort(); numbers.sort(function (a, b) { return a - b; }); function compare(a, b) { if (a < b) { return -1; } if (a > b) { return 1; } // a必须等于 return 0; } numbers.sort(compare); console.log(numbers)//结果(15)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
//搜索 var numbers = [1, 2, 3, 4, 5, 6, 3,5,3,5,87,3]; console.log(numbers.lastIndexOf(33))//从数组尾端开始查找匹配的 返回与其相同的值的索引 没有匹配到返回-1 console.log(numbers.indexOf(3))//从数组首端开始查找匹配的 返回与其相同的值的索引 没有匹配到返回-1