一.创建数组
JavaScript数组里面可以存放不同数据类型的数据,不像Java那样只能存放相同数据类型的数据。
数组的创建方式:
- 通过构造函数创建数组
- 通过字面量创建数组
1.通过构造函数创建数组
//空数组
var array = new Array();
//指定数组长度
var array = new Array(3);
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = undefined;
console.log(array.length); //数组长度 4
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
// 1 2 3 undefined
}
2.通过字面量创建数组
//空数组
var array = [];
var array = [1, 2.2, 'hello', true, false, null, undefined, new Date()];
for (var i = 0; i < array.length; i++) {
console.log(array[i]);
// 1 2.2 hello true false null undefined Fri Jun 28 2019 17:48:22 GMT+0800
}
二.数组常用方法
1.增删元素
var array = [1, 2, 3];
var temp;
//末尾新增元素,返回新数组长度
temp = array.push(4);
console.log(array, temp);// [1, 2, 3, 4] 4
//删除最后一个元素,返回删除的元素
temp = array.pop();
console.log(array, temp);// [1, 2, 3] 4
//开始位置新增元素,返回新数组长度
temp = array.unshift(0);
console.log(array, temp);// [0,1, 2, 3] 4
//删除第一个元素,返回删除的元素
temp = array.shift();
console.log(array, temp);// [1, 2, 3] 0
2.every()
var array = [1, 2, 3];
var b = array.every(function (value, index, array) {
console.log(value, index, array);
return value > 0;
});
console.log(b);
//1 0 [1, 2, 3]
//2 1 [1, 2, 3]
//3 2 [1, 2, 3]
//true
every方法,必须数组中的每一项都满足条件才会返回true,其中value是元素的值,index是元素的索引,array是被遍历的数组。
3.some()
var array = [1, 2, 3];
var b = array.some(function (value, index, array) {
console.log(value, index, array);
return value > 2;
});
console.log(b);
//1 0 [1, 2, 3]
//2 1 [1, 2, 3]
//3 2 [1, 2, 3]
//true
some方法,数组中的有一项满足条件就会返回true,其中value是元素的值,index是元素的索引,array是被遍历的数组。
4.filter()过滤数组
var array = [1, 2, 3];
var newArray = array.filter(function (value, index, array) {
console.log(value, index, array);
return value > 1;
});
console.log(newArray);
// [2, 3]
filter方法,过滤数组中符合过滤条件的元素组成新数组。
5.map()
var array = [1, 2, 3];
var newArray = array.map(function (value, index, array) {
return value * 10;
});
console.log(newArray);
// [10, 20, 30]
map()方法对数组中的每个变量做转换,形成一个新数组.
6.forEach()
var array = [1, 2, 3];
array.forEach(function (value, index, array) {
console.log(value, index, array);
});
//1 0 [1, 2, 3]
//2 1 [1, 2, 3]
//3 2 [1, 2, 3]
forEach方法,循环遍历整个数组进行操作,无返回值。
7.sort()排序方法
var array = [3, 2, 1];
array.sort(function (value1, value2) {
if (value1 > value2) {
return 1;
} else if (value2 === value1) {
return 0;
} else {
return -1;
}
});
console.log(array);
// [1, 2, 3]
sort方法中需要指定排序规则。
8.slice()返回选定的元素
var array = [1, 2, 3];
var newArray = array.slice(1, 3);
console.log(newArray);//[2, 3]
slice方法包括两个参数,start 和 end,表示选择的起始位置和结束位置。start如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。end是可选的,如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
9.splice() 新增删除替换元素
var array = [1, 2, 3];
array.splice(0, 0, "nb");
console.log(array);
//["nb", 1, 2, 3]
array.splice(0, 2);
console.log(array);
//[2, 3]
splice方法有三个参数,分别是:
index,必需,整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置;
howmany,必需,要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX,可选,向数组添加的新项目。
10.判断对象是否是数组
var array = new Array('a', 'b', 'c');
console.log(array);//["a", "b", "c"]
console.log(array instanceof Array); // true
console.log(Array.isArray(array)); // true