Array 对象用于在单个的变量中存储多个值。
参数
参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。
参数 element ..., elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这些值。它的 length 字段也会被设置为参数的个数。
返回值
返回新创建并被初始化了的数组。
如果调用构造函数 Array() 时没有使用参数,那么返回的数组为空,length 字段为 0。
当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为 undefined 的数组。
当其他参数调用 Array() 时,该构造函数将用参数指定的值初始化数组。
当把构造函数作为函数调用,不使用 new 运算符时,它的行为与使用 new 运算符调用它时的行为完全一样。
Array 对象语法:
new Array(); new Array(size); new Array(element0, element1, ..., elementn);
1.数组常用方法
var colors = ["red", "blue", "green"]; alert(colors.toString()); alert(colors.valueOf()); alert(colors);
2.数组map()方法
var numbers = [1,2,3,4,5,4,3,2,1]; var mapResult = numbers.map(function(item, index, array){ //item 数组元素 index元素对应索引 array原数组 console.log(array === numbers); return item * 2; }); console.log(mapResult);
3.数组reduce()方法
var values = [1,2,3,4,5]; // 接收一个函数,然后从左到右遍历item,直到reduce到一个值。 var sum = values.reduce(function(prev, cur, index, array){ console.log(array === values); console.log(index);// 1,2,3,4 数组的索引从1开始 return prev + cur; }); alert(sum);// 15
4.数组concat()方法
var colors = ["red", "green", "blue"]; var colors2 = colors.concat("yellow", ["black", "brown"]); alert(colors); alert(colors2);
7.数组filter()方法
// 从数组中找到适合条件的元素(比如说大于某一个元素的值) var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter(function(item, index, array){ return (item > 2); }); alert(filterResult);
8.数组isArray()方法
alert(Array.isArray([])); // true alert(Array.isArray({})); // false
9.splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目
var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" alert(arr); // George,John,Thomas,James,Adrew,Martin arr.splice(2,0,"William") alert(arr); // George,John,William,Thomas,James,Adrew,Martin
10.数组toLocaleString和toString
var person1 = { toLocaleString : function () { return "Nikolaos"; }, toString : function() { return "Nicholas"; } }; var person2 = { toLocaleString : function () { return "Grigorios"; }, toString : function() { return "Greg"; } }; var people = [person1, person2]; alert(people); //Nicholas,Greg alert(people.toString()); //Nicholas,Greg alert(people.toLocaleString()); //Nikolaos,Grigorios
11.数组排序方法sort
function compare(value1, value2) { if (value1 < value2) { return -1; } else if (value1 > value2) { return 1; } else { return 0; } } var values = [0, 1, 16, 10, 15]; values.sort(compare); alert(values);
12.数组push和pop方法
var colors = new Array(); var count = colors.push("red", "green"); alert(count); //2 count = colors.push("black"); alert(count); //3 var item = colors.pop(); alert(item); //"black" alert(colors.length); //2