数组的定义方式
字面量定义 var arr = [];
构造函数定义 var arr = new Array();当里面参数只有一个的时候,表示的是数组的长度
数组
数组的成员有编号,这种编号我们称为下标或者索引,数组也是属于对象,所以也是引用类型。所以数组也有自己的方法
数组的方法
arr.isArray()
该方法用于判断一个值是不是一个数组,成功弥补了typeof运算符不足。typeof运算符判断数组只能是object,若该值是数组,则返回true。
arr.push()
该方法用于向数组的末尾增加一项.参数是所要添加的数组新成员,返回值为数组的长度
var arr = [1,2,3,4];
console.log(arr.push(5)); // 输出结果为5
console.log(arr); //输出结果为[1,2,3,4,5]
arr.pop()
该方法用于从数组的末尾移除这一项,返回值为移除的那一项
var arr = [1,2,3,4,5];
console.log(arr.pop()); //输出结果为5
console.log(arr); //输出结果为[1,2,3,4]
arr.unshift()
该方法用于向数组的头部增加一项.参数是所要添加的数组新成员,返回值为数组的长度
var arr = [2,3,4,5];
console.log(arr.unshift()); //输出结果为5
console.log(arr); //输出结果为[1,2,3,4,5]
arr.shift()
该方法用于向数组的头部删除一项,返回值为移除的那一项
var arr = [0,1,2,3,4,5];
console.log(arr.shift()); //输出结果为0
console.log(arr); //输出结果为[1,2,3,4,5]
arr.concat();
连接数组,该方法用于给数组连接新成员,参数可以有任意个。若参数中含有数组,需要定义一个新的数组来接收
var arr = [1,2];
console.log(arr.concat(3,4,5)); //输出结果为 [1,2,3,4,5];
var arr1 = [3,4,5];
var arr2 = arr.concat(arr1);
console.log(arr2); //输出结果为[1,2,3,4,5]
arr.reverse();
该方法是将数组逆序,并且这个方法会改变原数组
var arr = [1,2,3,4,5,6];
var arr1 = arr.reverse();
console.log(arr); //输出结果为[6,5,4,3,2,1]
console.log(arr1); //输出结果为[6,5,4,3,2,1]
console.log(arr === arr1); //输出结果为true
arr.sort(function(a,b){ return b-a});
该方法用于给数组排序,并且数组中的数据必须都是数字,若返回值是a-b,则是从小到大来排序。若返回值是b-a,则是从大到小来排序
var arr = [3,4,2,6,5,1]
arr.sort(function(a,b){
return a-b;
});
console.log(arr); //输出结果为[1,2,3,4,5,6]
arr.sort();
该方法是将数组转变为字符串
var arr = [1,2,3,4,5]
console.log(arr.sort()); //输出结果为12345
arr.slice(start,end);
该方法是用于截取数组,并且不会改变原数组。需要定义一个新的数组,start是开始截取的位置,end是截取到的位置,并且符合左闭右开的原则。当只有一个参数的时候,表示从开始的位置截取到最后一位。当没有参数的时候,表示全部截取。当参数为负数的时候,表示从后往前截取。若只有一个参数为负数的时候,表示从后往前截取,若start为负数,end为正数的时候,只能截取到空数组
var arr = [1,2,3,4,5,6];
var arr1 = arr.slice(1,5);
var arr2 = arr.slice(2);
var arr3 = arr.slice();
var arr4 = arr.slice(1,-1);
var arr5 = arr.slice(-1,3);
console.log(arr); //输出结果为[1,2,3,4,5,6]
console.log(arr1); //输出结果为[2,3,4,5]
console.log(arr2); //输出结果为[3,4,5,6]
console.log(arr3); //输出结果为[1,2,3,4,5,6]
console.log(arr4); //输出结果为[2,3,4,5]
console.log(arr5); //输出结果为[]
arr.splice(pop,num,…);
该方法是用于操作数组,pop:表示操作数组的位置,num:表示要删除几项,之后的每一行都表示往pop的位置插入的成员。
var arr = [1,2,3,4,5,6,7]
//删除3
var result = arr.splice(2,1);
console.log(result) //输出结果为[3],此时的返回值为一个新的数组,数组中的成员就是删除的数据
//将3替换成9
var result = arr.splice(2,1,9);
console.log(result); //输出结果[3],此时的返回值为一个新的数组,数组中的成员就是删除的数据
//在5前面插入5个1
var result = arr.splice(4,0,1,1,1,1,1);
console.log(result); //输出结果为[],此时的返回为一个新数组,此时未删除原数组的成员,所以是一个空数组
//当我们传入一个参数,看看结果是什么
var result = arr.splice(3);
console.log(result); //输出结果为[4,5,6,7],当我们只传入一个参数的时候,表示从这个参数开始截取,截取到数组的最后一位.此时的返回值是截取后的数组
ES5新增的一些数组方法
arr.forEach(function(value,index,self){ return});
该方法是用于遍历数组,value就是数组中的每一个成员,index就是数组中的每一个成员所对应的下标,self是该数组。
arr.map(function(value,index,self){ retunrn})
该方法是用于操作数组,value就是数组中的每一个成员,index就是数组中的每一个成员所对应的下标,self是该数组。需要定义一个新数组function会执行数组.length次 返回一个新的数组的成员,并且新数组的长度与原来的数组长度保持一致
var arr = [1,2,3,4,5];
var arr1 = arr.map(function(value){
return value*2;
});
console.log(arr); //输出结果为[1,2,3,4,5]
console.log(arr1); //输出结果为[2,4,6,8,10]
arr.fill(num,start,end)
该方法是用于填充数组,第一个参数是要填充的数据,第二个参数是开始填充的位置(可选),第三个参数是结束填充的位置(可选)
var arr = [1,2,3,4,5];
//将数组的每一个都填充为0
console.log(arr.fill(0)); //输出结果为[0,0,0,0,0]
//将数组的第二个开始往后都填充为0
console.log(arr.fill(0,1)); //输出结果为[1,0,0,0,0]
//将数组的第二个到第四个填充为0
console.log(arr.fill(0,1,3)); //输出结果为[1,0,0,0,5]
arr.some(function(value,index,self){ return 布尔值})
该方法为判断数组是否含有函数中的描述,只要数组中有一个成员符合函数中的条件,就返回true,都不符合才返回false。
//判断数组是否含有字符串。
//方法一
var arr = [1,2,3,4,5];
var result = false;
for(var i = 0;i<arr.length;i++){
if(typeof arr[i] === "string"){
return = true;
break;
}
}
console.log(result); //此时为false,若存在字符串则为true
//方法二
var arr = [1,2,3,4,5];
var result = arr.some(function(value,index,self){
return typeof value === "string";
});
console.log(result); //此时为false,若存在字符串则为true
arr.every(function(value,index,self){ return 布尔值})
该方法为判断数组是否含有函数中的描述,数组中每一个成员符合函数中的条件,就返回true,都不符合才返回false。
var arr = [1,2,3,"4",5];
var result = arr.every(function(value,index,self){
return typeof value === "string";
})
console.log(result); //此时为false,因为数组中只有一项符合条件
arr.indexOf(num.start)
该方法用于查找数组中是否存在某一个成员,如果找得到话返回该成员的下标,如果找不到的话则返回-1。第一个参数表示要查找的成员