数组的常用操作方法

1.sort()

描述:能根据提供的排序规则,对数组元素进行排序
           排序顺序可以是字母或数字,并按升序或降序,默认排序顺序为按字母升序。
           使用数字排序,你必须通过一个函数作为参数来调用。
语法:arr.sort(排序规则);
注意:
         (1)如果不写参数,默认按照编码方式(Unicode大小)进行排序
         (2)本方法会改变原数组的结构

兼容性:所有主要浏览器都支持

var arr = [243,123,567,453,54,34,54,13,5,98,100];
var newArr = arr.sort(); 
console.log(arr); //(11) [100, 123, 13, 243, 34, 453, 5, 54, 54, 567, 98]
console.log(newArr); //(11) [100, 123, 13, 243, 34, 453, 5, 54, 54, 567, 98]
		
function sortFunc(a,b){
	return a-b;
};
var arr = [243,123,567,453,54,34,54,13,5,98,100];
var newArr = arr.sort(sortFunc);
console.log(arr); //(11) [5, 13, 34, 54, 54, 98, 100, 123, 243, 453, 567]
console.log(newArr); //(11) [5, 13, 34, 54, 54, 98, 100, 123, 243, 453, 567]

2.reverse()

描述:能够将数组元素的顺序进行颠倒(反序排列)
语法:arr.reverse();
注意:本方法能够改变原数组的结构
兼容性:所有主流浏览器都支持

var arr = [11,34,54,67,53,23,1,32];
var newArr = arr.reverse();
console.log(arr); //(8) [32, 1, 23, 53, 67, 54, 34, 11]
console.log(newArr); //(8) [32, 1, 23, 53, 67, 54, 34, 11]

3.slice()

描述:从数组中下标为fromIndex开始截取,截取到下标toIndex为止,将截取的数组元素构成一个新的数组返回
语法:arr.splice(fromIndex,toIndex);
注意:
         (1)截取的时候是从fromIndex开始,到toIndex为止,不包括toIndex下标处的元素
         (2)slice()方法不会修改原数组结构
         (3)slice方法的参数允许为负数,负数意味着倒数第几个元素

兼容性:所有主流浏览器都支持

var arr = ['aa','bb','cc','dd','ee','ff'];
var newArr = arr.slice(3,6);
console.log(arr); //(6) ["aa", "bb", "cc", "dd", "ee", "ff"]
console.log(newArr); //(3) ["dd", "ee", "ff"]

4.splice()

描述:截取并替换元素
语法:arr.splice(index,removeCount,addItem1,addItem2,...);
注意:
         (1)本方法能够改变原数组结构
         (2)对于本方法,前两个参数为必要参数。后面所有的参数都是可选参数
         (3)截取出来的元素数量,不用必须和添加元素的数量一致

兼容性:所有主流浏览器都支持

var arr = ['123','aaa','bbb',4,6,5,'ddd','ccc','eee'];
var subArr = arr.splice(3,4,'a','b','c','1','2','3');
console.log(subArr); //(4) [4, 6, 5, "ddd"]
console.log(arr); //(11) ["123", "aaa", "bbb", "a", "b", "c", "1", "2", "3", "ccc", "eee"]

5.indexOf()

描述:在数组中查找元素第一次出现的下标,如果没有找到返回-1
语法:arr.indexOf(item,fromIndex);
注意:
         (1)第二个参数是可选参数,代表从第几个下标开始向后查找
         (2)第二个参数允许是负数,负数代表从倒数第几个元素开始向后查找
         (3)【无论是正数参数还是负数参数,查找顺序永远都是向后查找】

兼容性:IE8及其更在版本不支持,其余都支持

var arr = ['小红','小橙','小黄','小绿','小青','小红'];
var index = arr.indexOf('小红',2);
console.log(index); //5

6.lastIndexOf()

描述:在数组中查找元素最后一次出现的下标,如果没有找到返回-1
语法:arr.lastIndexOf(item,toIndex);
注意:
         (1)第二个参数是可选参数,代表向后查找到第几个下标结束
         (2)第二个参数允许是负数,负数代表向后查找到【倒数第几个】结束

兼容性:IE8及其更在版本不支持,其余都支持

var arr = ['小红','小橙','小黄','小绿','小青','小红'];
var index = arr.lastIndexOf('小红',2);
console.log(index); //0

7.unshift()

描述:作用是在数组当前起始位置添加一个或多个元素,并返回添加后数组的新长度
语法:arr.unshift(item1,item2,...);
注意:本方法会对原数组造成影响,可以根据需求决定是否保存结果
兼容性:IE8及更早版本不支持返回undefined,其余都支持

var arr = ['小红','小橙','小黄'];
var newLength = arr.unshift('小绿','小青');
console.log(arr); //(5) ["小绿", "小青", "小红", "小橙", "小黄"]
console.log(arr.length); //5
console.log(newLength); //5

8.shift()

描述:作用是删除数组开始位置的第一个元素,并返回这个元素
语法:arr.shift();
注意:本方法会对原数组造成影响,可以根据需求决定是否保存结果
兼容性:所有主流浏览器都支持

var arr = ['一','二','三','四','五'];
var deleteItem = arr.shift();
console.log(arr); //(4) ["二", "三", "四", "五"]
console.log(arr.length); //4
console.log(deleteItem); //一

9.push()

描述:作用是向数组的末尾添加一个或多个元素,并返回数组的新长度
语法:arr.push(item1,item2,...);
注意:可以根据需要来决定是否保存push方法的执行结果
           (1)push()方法会原数组造成影响
           (2)可以根据需要来决定是否保存push()方法的执行结果

兼容性:所有主流浏览器都支持

var arr = [];
var newLength = arr.push('Licy',15);
console.log(arr); //(2) ["Licy", 15]
console.log(newLength); //2
	
var otherNewLength = arr.push('Lily');
console.log(arr); //(3) ["Licy", 15, "Lily"]
console.log(otherNewLength); //3

10.pop()

描述:作用是删除数组的最后一个元素,并将这个元素返回
语法:arr.pop();
注意:
         (1)pop方法会对原数组造成影响
         (2)可以根据需要来决定是否保存pop()方法的执行结果
         (3)pop()方法没有参数

兼容性:Chrome1.0、IE5.5、Firefox1.0、Safari、Opera开始支持

var arr = ['aaa','bbb','ccc','ddd','eee'];
var deleteItem = arr.pop();
console.log(deleteItem); //eee
console.log(arr.length); //4
console.log(arr); //(4) ["aaa", "bbb", "ccc", "ddd"]

11.isArray()

描述:用来判断一个变量是否是数组。如果返回true,否则返回false
语法:Array.isArray(变量名);
注意:本方法不由数组变量调用,而是必须用Array调用
兼容性:Chrome5、IE9.0、Firefox4、Safari5、Opera10.5开始支持

var arr = [11,22,33,44,55];
console.log(typeof arr); //object
console.log(Array.isArray(arr)); //true

12.valueOf()

描述:返回数组本身
           该原始值由 Array对象派生的所有对象继承。
语法:arr.valueOf();
注意:
         (1)valueOf()不会改变原数组
         (2)valueOf()方法通常由 JavaScript 在后台自动调用,并不显式地出现在代码中。

兼容性:所有主流浏览器都支持

var arr = [2,53,23,12,6,23];
var newArr = arr.valueOf();
console.log(arr); //(6) [2, 53, 23, 12, 6, 23]
console.log(newArr); //(6) [2, 53, 23, 12, 6, 23]
console.log(arr === arr.valueOf()); //true

13.toString()

描述:能够将数组中的数组元素,拼接成以逗号隔开的字符串
语法:arr.toString();
注意:toString()方法不仅能合并数组元素,对布尔值类型也能够生效
兼容性:所有主流浏览器都支持

var arr = ['aaa','bbb','ccc','ddd'];
var str = arr.toString();
console.log(str); //aaa,bbb,ccc,ddd

var bool = true;
console.log(bool); //true
var str = bool.toString();
console.log(str); //true

14.join()

描述:能够以给定的分隔符做间隔,将数组中的元素合并为一个字符串
语法:arr.join('分隔符');
注意:无论是切割字符串,还是合并数组,都不会对原有的数据造成影响
兼容性:所有主流浏览器都支持

//切割字符串
var str = 'hello world goodbye world';
var wordArr = str.split(' ');
console.log(wordArr); //(4) ["hello", "world", "goodbye", "world"]
	    
//合并数组
var newStr = wordArr.join(' ');
console.log(newStr); //hello world goodbye world
console.log(wordArr); //(4) ["hello", "world", "goodbye", "world"]

15.concat()

描述:本方法用于连接两个或多个数组
语法:arr.concat(arr1,arr2,arr3,...);
注意:本方法不会改变现有的数组,仅仅会返回被连接数组的一个副本
兼容性:所有主流浏览器都支持

var arr = [11,22,33];
var arr1 = ['大红','小红'];
var arr2 = ['aaa','bbb','ccc'];
console.log(arr.concat(arr1,arr2)); (8) [11, 22, 33, "大红", "小红", "aaa", "bbb", "ccc"]

猜你喜欢

转载自blog.csdn.net/weixin_55992854/article/details/117359022