本人新手一枚,有错还请指出来,勿喷,谢谢!!!
JavaScript的数组操作
数组的连接
concat() 函数
默认返回 新数组,原数组 不变
var a=[1,2.3];
var b=[4,5,6];
document.write(a.concat(b)); //[1,2,3.4.5.6 ]
//a.concat(b)
//把数组b放到数组a的末尾处,两个数组拼接成一个
数组的排序
sort() 函数
var a=[1,3,2];
var b=[6,5,4];
c=a.concat(b);
console.log(c); //[1,3,2,6,4,5]
console.log(c.sort()); //]1,2,3,4,5,6]
console.log(c); //[1,2,3,4,5,6]
sort(sortby) 函数,返回一个 新数组,原数组 改变
无参数的情况下,默认为字符串的单个字符逐次比较,先转换为字符串,在按照ASCALL码比较大小
var a=['abi','cpd','efg','bmp','mvp','abm'];
console.log(a.sort()); //['abi','abm','bmp','cpd','efg','mvp']
var a=[1,10,1000,5,26,3700];
console.log(a.sort()); //[1,10,1000,26,3700,5]
sotrby是排序顺序,必须是函数
比较函数compare(a,b)
- a<b, 即a-b<0,为升序
- a=b, 即a-b=0
- a>b, 即a-b>0,为降序
var a=[1,10,1000,5,26,3700];
function compare1(a,b){
return a-b;
}
function compare2(a,b){
return b-a;
}
console.log(a.sort(compare1)); //[1,5,10,26,1000,3700]
console.log(a); //[1,5,10,26,1000,3700]
console.log(a.sort(compare2)); //[3700,1000,26,10,5,1]
console.log(a); //[3700,1000,26,10,5,1]
数组的倒置
reverse () 函数
默认返回 新数组,原数组 改变
var a=[1,2.3,4,5,6];
console.log(a.reverse()) //[6,5,4,3,2,1]
console.log(a) //[6,5,4,3,2,1]
数组的插入
push() 函数 尾部插入
unshift() 函数 头部插入
两个函数的默认返回值为新数组的 长度 ,数组改变
var a=new Array(1,2,3);
var b=a.push(4);
console.log(a,b) //[1,2,3,4],4
var c=a.unshift(5);
console.log(a,c); //[5,1,2,3,4],5
数组的删除
pop() 函数 尾部删除
shift() 函数 头部删除
两个函数的默认返回值为 删除的元素 ,原数组改变
var a=new Array(1,2,3,4,5);
var b=a.pop();
console.log(a,b) //[1,2,3,4],5
var c=a.shift();
console.log(a,c); //[2,3,4],1
数组同时添加和删除
splice(start,length,add) 函数,返回删除元素的数组
strat删除或添加元素的起始位置(不包含该位置)
length 删除元素的个数
add 要添加的元素(没有个数限制)
var a=new Array(1,2,3,4,5);
var m=a.splice(2);
console.log(a,m); //[1,2],[3,4,5]
//只有一个参数时,删除从起始位置的下一个元素至末尾
var b=new Array(6,7,8,9,5);
var n=b.splice(1,2);
console.log(b,n); //[6,9,5],[7,8]
var c=new Array(2,3,5,7,9);
var n=c.splice(1,0,4,6);
console.log(c,n); //[2,4,6,3,5,7,9]
数组的截取
slice(start,end) 函数 ,返回 截取的数组, 原数组不变
var c=new Array(2,3,5,7,9);
var b=c.slice(1,3);
console.log(c,b); //[2,3,5,7,9],[3,5]
console.log(c.slice());
//没有参数或者参数为0的情况下,复制整个数组
console.log(c.slice(0))
数组转字符串
join() 函数 返回一个 字符串
var c=new Array(2,3,5,7,9);
var b=c.join('');//默认用逗号连接
console.log(b);
///23579
var b=c.join('-');
//2-3-5-7-9