数组的操作
常用方法
push
向数组末尾增加项
返回数组新长度
直接改变原数组
其他实现方法:ary[ary.length]=1
pop
删除数组最后一项
返回被删除项
直接改变原数组
其他实现方法:ary.length--
shift
删除数组第一项
返回被删除的那一项
直接改变原数组
unshift
向数组开头增加项
返回数组新长度
原数组改变
splice
splice(n,m)从索引n开始,删除m个元素
splice(n)从索引n开始,删除到数组末尾
ary.splice(ary.length-1,0)==ary.pop()
splice(n,m,x)从索引n开始删除m个,用x替换删除项
splice(n,0,x)从索引n开始,删除0个(不删除),把x增加到n的前面
ary.splice(ary.length,0,x)==ary.push(x)
slice
slice(n,m)从索引n开始截取到m-1处
slice(0) 相当于赋值数组
concat 拼接
toString 转化为字符串
join(',') 按照固定符号把数组拆分
reverse 倒序数组
sort 排序数组(10以内)
sort(function(a,b){ return a-b })有小到大排序
sort(function(a,b){ return b-a })有大到小排序
forEach 遍历数组
var ary = [1, 2, 3];
ary.forEach( function ( item , index ) {} )
更好用的方法
例: var arr=[{name:1},{name:2},{name:3},{name:4}];
注意:还需要处理低版本IE的朋友请忽略以下方法
增 push
arr.push({name:5});
console.log(arr);//[ { name: 1 }, { name: 2 }, { name: 3 }, { name: 4 }, { name: 5 } ]
直接改变原数组
删(过滤) filter
var res=arr.filter(function (item, index) {
return item.name!==1//过滤掉name为1的那一项
});
console.log(arr)//[ { name: 1 }, { name: 2 }, { name: 3 }, { name: 4 } ]
console.log(res)//[ { name: 2 }, { name: 3 }, { name: 4 } ]
返回的新数组才是过滤好的结果,原数组不变
改 map
var obj={name:100};
var res=arr.map(function (item, index) {
if(item.name===1){
return obj
}
return item;
});
console.log(arr);//[ { name: 1 }, { name: 2 }, { name: 3 }, { name: 4 } ]
console.log(res)//[ { name: 100 }, { name: 2 }, { name: 3 }, { name: 4 } ]
返回的新数组才是改变后的结果,原数组不变
查 find
var res=arr.find(function (item, index) {
return item.name==1
})
console.log(arr)//[ { name: 1 }, { name: 2 }, { name: 3 }, { name: 4 } ]
console.log(res)//{ name: 1 }
返回结果才是要查找的项,原数组不变
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。