1、向数组最后位置插入一个对象:
arr.push(obj);
2、删除数组最后一个对象(注意:pop 方法会返回被删除元素):
arr.pop();
3、splice 方法:splice(index,len,[item])
注释:该方法会改变原始数组,splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值
index:数组开始下标 len: 替换/删除的长度 item:替换的值,删除操作的话 item为空
(1)删除-------item 不设置
arr.splice(1,1);
(2)替换-------item设置为要替换的值
arr.splice(1,1,"ttt"); arr.splice(1,2,"ttt");
(3)添加-------len设置为0,item为添加的值
arr.splice(1,0,"ttt");
4、操作数组第一项
(1)shift()移除数组中第一个项并返回改项,同时将数组长度减1.
arr.shift();
(2)unshift()在数组前端添加任意个项并返回新数组的长度.
arr.unshift("str");
5、数字数组排序
//正序
arr.sort(function(n1,n2){
return n1-n2;
});
//字符串数组
arr.sort();
6、数组链接
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2); //arr3 = [1,2,3,4,5,6]
7、将数组元素拼接成字符串
var arr = [1,2,3];
var sArr = arr.join("-"); //sArr = "1-2-3"
8、遍历数组同时删除多个元素
项目中经常碰到一个数据遍历中要删除其中元素的情况,如果使用正序遍历,删除项的时候,数组长度减了1,但是下标i 却执行了++,导致删除i的下一项被跳了过去
总结几个遍历数组并同时删除指定元素的方法
方案一:ES6 提供的 filter 方法
let arr1 = [5,1,2,5,5,5,3,5,66,7,5,6];
arr1 = arr1.filter(item => item !== 5);
方案二:倒叙遍历,倒叙遍历的时候不管删了多少元素,没遍历的元素不会被跳过
let arr2 = [5,1,2,5,5,5,3,5,66,7,5,6];
for(let i = arr2.length-1;i>=0;i--){
if (arr2[i] === 5) {
arr2.splice(i, 1);
}
}
方案三:正向遍历,在删除元素的同时,下标 i-- (使下标回退一个位置)
let arr3 = [5,1,2,5,5,5,3,5,66,7,5,6];
for(let i = 0;i<arr3.length;i++){
if (arr3[i] === 5) {
arr3.splice(i, 1);
i--
}
}