💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # Array对象的方法 ## 1.instanceof关键字 ***** 判断对象是不是数组类型,是返回值是true,不是返回值是false ``` var arr=[]; console.log(arr instanceof Array);//true ``` <br> ## 2.isArray(对象) 判断这个对象是不是数组,是返回值是true,不是返回值是false ***** ``` console.log(Array.isArray(arr));//结果是true ``` <br> ## 3.push(值1,值2...) 把值往数组**后面添加**,返回值也是**追加数据之后的数组长度**,参数的数据类型不限 ``` var arr1=[10,20,30,40,50]; var result = arr1.push(100,200); console.log(result,arr1);//返回结果:7,[10, 20, 30, 40, 50, 100, 200] ``` <br> ## 4.unshift(值1,值2...) 往数组**前面添加**,返回的是**改变后的数组的长度**参数数据类型不限; ``` var arr2=[10,20,30,40,50]; var result = arr2.unshift(100,200); console.log(result,arr2);//返回结果:7,[100, 200, 10, 20, 30, 40, 50] ``` <br> ## 5.pop() 删除数组的**最后一项**,参数无 **返回值是删除的那一项** ``` var arr3=[10,20,30,40,50]; var result=arr3.pop(); console.log(result,arr3);//返回结果:50和[10, 20, 30, 40] ``` <br> ## 6.shift() 删除数组的**第一项**,参数无** 返回值是删除的那一项;** ``` var arr4=[10,20,30,40,50]; var result=arr4.shift(); console.log(result,arr4);//返回结果:10和[20, 30, 40, 50] ``` <br> ## 7.indexOf(元素值) 查看某个元素在数组里面的**索引**,如果**没有这个元素返回值是-1** ``` var arr2=[10,20,30,40,50]; var index=arr2.indexOf(30); console.log(index);//2 ``` <br> ## 8.indexOf(n,m) 从索引m开始查看n在数组里面的索引值 <br> ## 9.lastIndexOf() **查找从后往前找**,但是**索引仍然是从左向右的方式**,**找不到则返回-1** <br> ## 10.join("字符串") 把**数组**按照指定的字符串**拼接成一个字符串**,如果**没有参数就按默认的逗号**拼接成字符串,如果有参数就按照指定的字符串拼接成字符串 ``` var arr2=["小白","小黑","小红","小芳","小绿","小花"]; var str = arr2.join("|"); console.log(str); //小白|小黑|小红|小芳|小绿|小花 ``` <br> ## 11.reverse() **数组反转** 参数无 **返回值是反转后的数组**,(改变原有数组) ``` var arr3=[10,20,30,40,50]; var temp=arr3.reverse();//反转 console.log(temp,arr3);//[50, 40, 30, 20, 10],[50, 40, 30, 20, 10] ``` <br> ## 12.sort() 数组排序 **返回值是排好序的数组**,改变原有数组。参数可传可不传,如果**传参数**,参数是**回调函数**。如果**不传参数**的时候**只能排10以内的数字** ***** ``` //不传参数的sort()排序----从小到大 var ary=[1,2,3,6,5,4]; var temp=ary.sort(); console.log(temp); //结果:[1, 2, 3, 4, 5, 6] console.log(ary); //结果:[1, 2, 3, 4, 5, 6] ``` ***** //sort()带有参数的升序和降序 **冒泡排序** ``` //1、从小到大排序 a-b 升序 var ary=[1,2,3,6,5,4,13,12,15,16]; var temp=ary.sort(function (a,b) { return a-b;//把原数组升序排 }); console.log(temp);//结果:[1, 2, 3, 4, 5, 6, 12, 13, 15, 16] //2、从大到小排列 b-a 降序 var temp=ary.sort(function (a,b) { return b-a; }); console.log(temp);//结果:[16, 15, 13, 12, 6, 5, 4, 3, 2, 1] ``` <br> ## 13.slice(n,m) 从索引n开始获取到索引m(**不包含m**)返回值是**获取到的元素组成的新数组** ``` var ary=[10,20,30,40,50,60,70,80,90,100]; var temp=ary.slice(2,6); console.log(temp); //结果是[30, 40, 50, 60] 从索引2开始获取到索引6不包括索引6 ``` <br> ## 14.splice(n,m,x/y/z...) 把数组从**索引n开始删除m个元素**,用**x,y...替换删除的m项**。返回值是**删除的m项组成的新数组** ``` var ary=[1,2,3,4,5,6]; var temp=ary.splice(1,2,7,8,9,10); console.log(temp);//返回结果是:[2, 3]这个是删除的项组成的新数组,就是删除了2,3 console.log(ary);//返回结果是:[1, 7, 8, 9, 10, 4, 5, 6] ``` <br> //当m项是0的时候,它把x,y...替换项放到索引n的前面 ``` var ary=[1,2,3,4,5,6]; var temp=ary.splice(1,0,7,8,9,10); console.log(temp);//[] 返回空数组,因为没有删除 console.log(ary); //结果:[1, 7, 8, 9, 10, 2, 3, 4, 5, 6] ``` //当不写x、y替换项的时候代表删除数组的元素 ``` var ary=[1,2,3,4,5]; var temp=ary.splice(1,2); console.log(temp);//结果:[2, 3] console.log(ary);//结果:[1, 4, 5] ``` <br> ## 15.splice() **不传参数**时,代表没有对数组做任何操作,**返回一个空数组** ``` var ary=[1,2,3,4,5]; var temp=ary.splice(); console.log(temp); //结果:[] console.log(ary);//结果:[1, 2, 3, 4, 5] ``` <br> **splice(0) ** 参数是**0** 的时候,代表**删除整个数组**,**返回的是原数组的数据,原数组变为空数组** ``` var ary=[1,2,3,4,5]; var temp=ary.splice(0); console.log(temp); //结果: [1, 2, 3, 4, 5] console.log(ary);//结果:[]原数组变为空数组 ```