JS数组的操作总结

1.数组的定义。

 var arr=new Array();

 var arr=[];

2.数组的push、pop、shift、unshift。

(1)arr.push();向数组屁股后插入任意数量的任意类型的数据,并返回其长度。如:

var arr=["yyl"];
arr.push(25);
console.log(arr);//["yyl",25]

(2)arr.pop();从数组屁股后删除最后一个元素,数组长度减一,并返回最后一个元素。如:

var arr=["yyl",25];
var ele=arr.pop();
console.log(ele);//25
console.log(arr);//["yyl"]

(3)arr.unshift();向数组头部前插入任意数量的任意类型的数据,并返回其长度。如:

var arr=[25];
arr.unshift("yyl");
console.log(arr);//["yyl",25]

(4)arr.shift();从数组头部前删除第一个元素,数组长度减一,并返回最后一个元素。如:

var arr=["yyl",25];
var ele=arr3.shift();
console.log(ele);//"yyl"
console.log(arr);//25

3.排序

(1)reverse将对原来的数组进行反转,并返回改变后的数组,其会改变原数组的值。如:

var arr=[5,4,3,2,1,]
arr.reverse();
console.log(arr);//1,2,3,4,5

(2)sort在默认情况下,sort方法按照升序排列数组项,为了实现排序,sort会调用每个数组项的toString方法,然后比较得到的字符串,以确定如何进行排序。故sort方法是通过字符串进行比较的,即使数组的每一项是数字类型亦是如此。

var arr=[0,1,10,5,15];
arr.sort();
console.log(arr);//0,1,10,15,5

为了能够对数组进行我们想要的排序,可以给sort传一个比较函数作为参数。

arr.sort(function (a,b) {if(a>b)return 1;elsereturn -1;
})
console.log(arr);//0,1,5,10,15

4.转换

所有对象都有toLocalString()、toString()、valueOf()方法。

(1)

var arr=["yyl",25];
//var str=String(arr);
var str=arr.toString();
console.log(str);//string,25

(2)toLocalString()与toString()几乎一样。valueOf()调用自己原始值,js会自己调用。

(3)join。将数组中的元素用不同的分隔符连接成字符串(默认是","号)

var arr=["yyl",25];
var str=arr.join()
console.log(str);//yyl,25"
var str1=arr.join("-")//yyl-25
console.log(str1);

5.操作方法:concat、slice、splice

(1)concat方法可以基于当前数组中的所有项创建一个新的数组。

var arr=["yyl",25];
var arr1=arr.concat("chinese boy");console.log(arr1);//"yyl", 25, "chinese boy"

与push的区别:push是在自己本身上进行的操作,而concat是创建了一个新的数组。

(2)slice基于当前数组的一项或者多项创建一个新的数组,slice方法接受一个或者两个参数。一个参数时:返回该参数指定的位置到当前数组末尾的所有项。两个参数时:返回起始位置到结束位置之间的项(不包括结束位置并且该方法不影响原来的数组)。注意这个slice的母数组也就是这个arr是不会变的。

var arr=[1,2,3,4,5];
var arr1=arr.slice(3);
console.log(arr1);//4,5
var arr2=arr.slice(0,3);
console.log(arr2);//1,2,3

(3)splice方式可以说是数组中功能最强大的方法,可以完成任意位置的插入,删除和替换操作。

1)插入:可以向任意位置插入任意数量的项,提供三个参数--插入的起始位置、0(删除元素的个数)、插入的元素(如果要插入多个元素,再传入第四第五...个参数),返回被删除的项目(如果没有被删除的元素返回的是[]空数组)。 

var arr=[1,2,3,4,5];
//从第0个位置开始,删除2个元素,把后面的元素从第0个元素开始依次插入
var arr1=arr.splice(0,2,"y","y","l")console.log(arr1);//1,2 
console.log(arr);//"y","y","l",3,4,5

2)删除:可以删除任意数量的项,需要指定2个参数,要删除的第一项的位置和要删除的项数

var arr=[1,2,3,4,5]
var arr1=arr.splice(1,3);//注意arr1是删除的元素
console.log(arr1);//2,3,4
console.log(arr);//1,5

6.位置方法。

数组中有两个位置方法:indexOf和lastIndexOf。都接收两个参数---要查找的项和(可选)表示查找起点的索引。其中indexOf从数组开头开始往后查找,lastIndexOf从后往前查找,返回值是项在数组中的位置或者-1(没有找到)

var arr=["yyl",1,"yyl"];
var index1=arr.indexOf("yyl");
var index2=arr.lastIndexOf("yyl");
var index3=arr.lastIndexOf("y");
console.log(index1);//0
console.log(index2);//2
console.log(index3);//-1

7.map,foreach,filter

(1)map和foreach都是对数组进遍历,foreach的this指向window,而jQuery的$(this)指向window

(2)filter可以根据条件数组中元素的条件进行过滤。

var arr=[1,2,3,4,5];
var arr1=arr.filter(function (item) {if (item%2==0){return true;}
})
console.log(arr1);//2,4

 

 

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部