版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41179401/article/details/82019138
js数组的方法
转换方法
1 对象或数组都具有toLocaleString()、toString()和valueOf()方法。其中toString()和valueOf()无论重写了谁,都会返回相同的值。数组会讲每个值进行字符串形式的拼接,以逗号隔开。
var a = [1,2,3];
console.log(a); //1,2,3
2 默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。
var a = [1,2,3];
console.log(a.join('|')); //1|2|3
3 栈方法
push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。
pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素。
var a = [1,2,3];
a.push(4);
console.log(a); //1,2,3,4
a.pop();
console.log(a); //1,2,3
4 队列方法
栈方法是后进先出,而列队方法就是先进先出。列队在数组的末端添加元素,从数组的前端移除元素。通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素。
unshift()方法,它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素。
var a = [1,2,3];
a.unshift(0);
console.log(a); //0,1,2,3
a.shift();
console.log(a); //1,2,3
5 重排序方法
数组中已经存在两个可以直接用来排序的方法:reverse()和sort()。
reverse() 逆向排序 sort() 从小到大排序
sort方法的默认排序在数字排序上有些问题,因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征,修改的方式,就是给sort(参数)方法传递一个函数参数。这点可以参考手册说明。
function compare(value1, value2) { //数字排序的函数参数
if (value1 < value2) { //小于,返回负数
return -1;
} else if (value1 > value2) { //大于,返回正数
return 1;
} else { //其他,返回0
return 0;
}
}
var box = [0,1,5,10,15]; //验证数字字符串,和数字的区别
alert(box.sort(compare)); //传参
// PS:如果要反向操作,即从大到小排序,正负颠倒即可。当然,如果要逆序用reverse()更加方便。
6 操作方法
ECMAScript为操作已经包含在数组中的元素提供了很多方法。
concat()方法可以基于当前数组创建一个新数组。
slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。s
plice()主要用途是向数组的中部插入元素。
//concat()方法
var box = [1, 2, 3]; //当前数组
var box2 = box.concat('4'); //创建新数组,并添加新元素
alert(box2); //输出新数组 1,2,3,4
alert(box); //当前数组没有任何变化 1,2,3
//slice() 从第几位截取到第几位
var box = [1, 2, 3]; //当前数组
var box2 = box.slice(1,2); //从第一位取到第二位
alert(box2); //新数组 2
alert(box); //当前数组 1,2,3
//splice()方法 返回值是截取的那一项
//splice中的删除功能:
var box = [1, 2, 3]; //当前数组
var box2 = box.splice(0,2); //截取前两个元素
alert(box2); //返回截取的元素 1,2
alert(box); //当前数组被截取的元素被删除 3
//splice中的添加功能:
var box = [1, 2, 3]; //当前数组
var box2 = box.splice(1,0,4); //没有截取,在第一位开始添加,0表示不截取即添加
alert(box2); //返回截取的那一项 ,没有截取,返回 空
alert(box); //输出1,4,2,3
//splice中的替换功能:
var box = [1, 2, 3]; //当前数组
var box2 = box.splice(1,1,0); //截取了第2条,替换成2
alert(box2); //返回截取的 2
alert(box); //输出数组 1,0,3