改变原数组的方法:
push:
语法:arr.push(元素1,元素2.。。)
作用:向数组的尾部追加一个或者多个元素
参数:一个或者多个元素
返回值:新的数组长度
unshift:
语法:arr.unshift(元素1,元素2.。。)
作用:向数组的头部追加一个或者多个元素
参数:一个或者多个元素
返回值:新的数组长度
pop:
语法:arr.pop()
作用:从数组中删除尾部一个元素
返回值:删除的元素
参数:无
shift:
语法:arr.shift()
作用:从数组中删除头部一个元素
返回值:删除的元素
参数:无
splice:
语法:arr.splice(开始下标,删除个数,[元素列表。。。])
作用:
arr.splice(开始下标,删除个数n) 从开始位置开始,删除n个元素
arr.splice(开始下标,删除个数,[元素。。。])从开始下标位置开始删除n个元素,增加元素列表
返回值:以数组的形式返回删除的元素
sort:
语法:arr.sort(function(a,b){return a- b});从小到大排序 arr是数字类型;从大到小:b-a
返回值:排序后的数组
参数:匿名的函数
作用:排序
reverse:
作用:将数组中的元素逆序
返回值:逆序后的数组
参数:无
语法:arr.reverse()
注意:sort和reverse会是原来的数组发生变化,会让原来的数组发生排序和逆序,可不存
Array:
原数组不会发生改变
indexOf
语法:arr.indexOf(元素),arr.indexOf(元素,下标)
作用:查找元素首次出现的下位标置、从下标位置向后进行查找首次出现的位置
返回值:下标位置,找不到,返回-1
参数:查找的元素
lastIndexOf:
语法:arr.lastIndexOf(元素),arr.lastIndexOf(元素,下标)
作用:从后往前,查找元素首次出现的下标位置、从下标位置向后进行查找首次出现的位置
返回值:下标位置,找不到,返回-1
参数:查找的元素
例:
// 数组去重
var arr = [3, 2, 3, 2, 4];
var newarr = [];
for (var i = 0; i < arr.length; i++) {
// 遍历arr,在newarr中查看是否存在遍历进来的元素,==-1说明没有找到,就放进newarr
// 在newarr中没有找到
if (newarr.indexOf(arr[i]) == -1) {
newarr.push(arr[i]);
}
}
console.log(newarr);
数组中是否包含某个元素
function has(arr, n) {
var res;
for (var i = 0; i < arr.length; i++) {
if (arr[i] == n) {
res = true; break;
} else {
res = false;
}
}
return res;
}
var arr = [21, 43, 56, 34, 12, 34, 60, 34, 2]
console.log(has(arr, 60)
join();
语法:arr.join('连接符号')
作用:以字符串符号将数组中所有的元素连接到一起
返回值:字符串
参数:连接符
concat():
语法:arr1.concat(arr2)
作用:把数组2拼接到数组1后面
返回值:数组形式
参数:一个或多个数组
数组api
不会改变原数组,ES5新增的数组api
1.forEach()
语法:arr.forEach(function(item,index,[array]){})
item:数组中的每一项
index:数组中每一项对应的下标
array:数组本身
返回值:无
参数:function(item,index,[array]){}
作用:遍历数组
2.map()
语法:arr.map(function(item,index,[array]){return item*1.3})
item:数组中的每一项
index:数组中每一项对应的下标
array:数组本身
返回值:映射后的新数组()
参数:function(item,index,[array]){}
3.filter()
语法:arr.filter(function(item,index,[array]){return item*1.3})
作用:过滤满足条件的元素
参数:function(item,index,[array]){})
返回值:过滤后的数组
4.some()
语法:arr.some(function(item[,index],[array]){return })
返回值:布尔值
作用:有一个满足条件的值就返回true,都不满足条件才是false
5.every()
语法:arr.every(function(item[,index],[array]){return})
返回值:布尔值
作用:每一个都满足条件才是true
有一个不满足的就是false
var price=[100,20,30,40,50]
// 20-10
var res=price.filter(function(item){
return item>=20&&item<=40;
})
console.log(res);