ps:注意各方法返回的值及该方法是否改变原数组
- concat() 数组连接
var a=[1,2,3,4];
var b=[5,6,7,8];
var c=a.concat(b);
console.log(c); // [1,2,3,4,5,6,7,8]
- join() 改变数组中元素拼接的符号
var a=[1,2,"str",false,undefined,null];
a.join("*"); /* "1*2*str*false**";
undefined、null 自动过滤掉了*/
- push() 在数组的最后一项后追加数值
var a=[1,2,3];
a.push(4); //返回数组的长度:4
console.log(a); //[1,2,3,4]
var b = [5,6];
a.push(b);
console.log(a);//[1, 2, 3, 4, Array[2]]
- pop() 删除数组的最后一项
var a=[1,2,3,4];
a.pop() // 返回删除值 4
console.log(a) // [1,2,3]
- unshift() 在数组的第0项前插入值,原数组的值索引向后移动
var a=[1,2,3];
a.unshift("str"); //返回数组的长度4
console.log(a); //["str",1,2,3]
var b=[9,8,7];
a.unshift(b); //返回数组的长度5
console.log(a) //[Array[3], "str", 1, 2, 3]
- shift() 删除数组的第0项,原数组的值索引向前移动
var a=[1,2,3];
a.shift(); //返回被删除的值1;
console.log(a); //[2,3]
- reverse() 数组元素翻转
var a=[1,2,3];
a.reverse(); //[3,2,1]
- slice(index,[end]) 返回新数组,索引从原数组index开始到 end-1 结束,原数组不变
var a=[1,2,3,4,5];
a.slice(2,4); //返回 [3,4]
a.slice(0); //[1,2,3,4,5]
a.slice(3); //[4,5]
console.log(a); // [1,2,3,4,5]
- sort() 按照 ASCII表排序,返回排序后新数组,原数组改变
var a=[1,2,3,12,13];
a.sort(); //返回 [1,12,13,2,3]
/*如果按照正常逻辑排序 */
a.sort(function(a,b){
return a-b;
}); //[1,2,3,12,13]
- splice(index,num,ele1,ele2…) index指从index删除(包括index对应的值) ;num指删除的个数; ele1,ele2…代表插入的值;最终返回删除的值,原数组发生改变
var a=[1,2,3,4,5];
a.splice(1,2,"str1","str2"); //返回[2,3]
console.log(a); // [1, "str1", "str2", 4, 5]