一. 数组的创建
1.构造函数方式
//new关键字可省略
//仅传一个number类型的参数则创建指定长度的数组
var array = new Array();//创建空数组
var array = new Array(10);//创建长度为10的空数组
var array = new Array('a');//创建长度为1的数组
var array = new Array(10, 'a');//创建长度为2的数组
2. 字面量方式
var array = [10, 'a'];//直接给数组赋值
3. Array.of()方法(ES6新增):将一组值转换为数组
var array = Array.of(1); //[1]
var array = Array.of(1, 2, 3); //[1, 2, 3]
var array = Array.of(undefined); //[undefined]
//兼容旧环境:原生不支持时,在其他代码之前执行以下代码会创建Array.of()
if(!Array.of) {
Array.of = function() {
return Array.prototype.slice.call(arguments);
};
}
二. 数组的检测
1.利用对象的toString方法
Object.prototype.toString.call([]) === "[object Array]";//true
2.Array.isArray([]);//true
三. 数组的属性(length属性)
- 设置或返回数组的长度
- 增加或删除数组项
四. 数组的方法
1. 原型上的方法
------ push():
作用: 向数组末尾添加项或多项
参数: element1, element2, ......
返回值: 添加元素后数组的长度
原数组是否改变: 是
eg:
var array = [1];
var temp = array.push(2);//2
------ pop():
作用: 删除元素最后一项
参数: 无
返回值: 删除项
原数组是否改变: 是
------ unshift():
作用: 向数组开头添加项或多项
参数: element1, element2, ......
返回值: 添加元素后数组的长度
原数组是否改变: 是
------ shift():
作用: 删除数组第一项
参数: 无
返回值:删除项
原数组是否改变: 是
------ splice():
作用: 删除, 插入, 替换数组项
参数: startndex, deleteCount, item1, ......
返回值: 删除项组成的数组
原数组是否改变: 是
eg:
var array = [1, 2, 3];
array.splice(1, 0, 'a');//插入
array.splice(1, 2);//删除
array.splice(1, 1, 'a');//替换
array.splice(0);//仅传一个参数:从0到最后
五. 数组的循环
1. 遍历数组
- forEach //js中方法,缺陷是循环不能中断
eg:
//无返回值(通过索引修改原数组或者定义变量)
([1, 2]).forEach(function(item, index, array) {});
- $.each() //Jquery中方法
eg:
$.each(array, function(index, item){});
- map
eg: 同forEach用法,但return返回item是原数组克隆项,且可对item进行操作
- for循环: 通用遍历
eg:
for(var i =0 ; i < array.length; i++){};
for(var i = 0, len = array.length; i< len;i++){};
2. 迭代数组(构建最终返回值- 如求和)
- reduce
eg:
//prve首项也是最终返回值
//cur从第二项开始的迭代
//index索引
//array原数组
//cuontprve初始值(可不设置)也是返回值的类型
([1,2]).reduce(function(prve, cur, index, array){}, cuontprve);
([1,2]).reduce(function(prve, cur, index, array){return prve+cur;}, 0);//求和
- reduceRight: 同上,但从最后一项开始
- every:全true则true,返回布尔值
eg:
([1,2]).every(function(item, index, array){
return item > 2;
});
- some: 一true则true,用法同上
- filter: 返回true项组成的数组
网友评论