Javascript数组方法

一、首尾操作(原数组会改变)

  1、push()在数组结尾添加

  返回值:添加后数组的长度

  2、pop()在数组结尾删除

  返回值:删除的对象

  3、unshift()在数组开头添加

  返回值:添加后数组的长度

  4、shift()删除数组第一项

  返回值:删除的对象

二、splice()删除、插入、替换(原数组会改变)

  splice(index,howmany,element1,element2,......)

扫描二维码关注公众号,回复: 1455580 查看本文章

  参数:

    index:删除项的开始索引值

    howmany:删除的个数

    elements:表示插入或删除的元素

  index,howmany必须书写,elements可以省略

  返回值:删除的数据组成的数组,若没有删除就是空数组

  通过改变参数实现不同的功能

  1、splice(index,howmany)删除

  howmany不是0,同时没有书写elements

  案例: 

//删除 splice(index,3)
	//var arr1 = [1,2,3,4,5,6,7,8];
	/*var arr2 = arr1.splice(2,3);//表示从索引为2的开始删除,删除3项
	console.log(arr2);//返回的是删除数据组成的数组[3,4,5]
	console.log(arr1);//原数组改变[1,2,6,7,8]
	*/	

  2、splice(index,0,elements)插入

  howmany是0,同时书写了elements

  案例:

//插入 splice(index,0,elements)
     //var arr1 = [1, 2, 3, 4, 5, 6, 7, 8];  /*var arr3 = arr1.splice(2,0,33,44,55)//表示从索引为2的开始,删除0项,插入33,44,55三个数据 console.log(arr3);//没有删除,返回空数组[] console.log(arr1);//原数组改变[1,2,33,44,55,3,4,5,6,7,8] */

  3、splice(index,howmany,elements)替换

  howmany不为0,同时书写了elements

  案例:

//替换  splice(index,3,elements),删除的个数和elements个数可以不相同
     //var arr1 = [1, 2, 3, 4, 5, 6, 7, 8] /*var arr4 = arr1.splice(2,3,77,88);//表示从索引为2的开始删除3项,插入77,88 console.log(arr4);//返回散出的数据组成的数组[3,4,5] console.log(arr1);//原数组改变[1,2,77,88,6,7,8] */

三、合并和拆分(原数组不会改变)

  1、concat()将多个数组合并成一个数组

  用法:arr1.concat(arr2);

  参数:合并的数组(可以是散的值,变量,数组字面量)

  返回值:合并后的新数组

/*var arr1 = [1,2,3,4,5];
var arr2 = [6,7,8];
var arr3 = arr1.concat(arr2);
console.log(arr3);//[1,2,3,4,5,6,7,8]
console.log(arr1);[1,2,3,4,5]
console.log(arr2);//[6,7,8]
*/

  2、slice()拆分

  slice(start,end)

  参数:第一个参数start表示截取数组开始的索引值,第二个参数表示截取数组结尾项的索引值

  截取的数组包含start,不包含end

  返回值:截取后的新数组 [start,end)

//返回值:截取后的新数组(得到的数组包括start值,不包括end值)
		/*var arr1 = [1,2,3,4,5,6,7,8,9];
		//要截取3,4,5,本身截取是不包括第二个参数的值,可以往后推一位
		var arr2 = arr1.slice(2,5);
		console.log(arr2);//[3,4,5]
		console.log(arr1);//[1,2,3,4,5,6,7,8]
		*/

  参数start,end还可以书写负值,表示从倒数第一位开始数,倒数第一位索引为-1;同样含start,不含end

/*var arr1 = [1,2,3,4,5,6,7,8,9];
 //start、end还可以书写负值,表示从倒数第一位开始数,从-1开始
		//同样截取3,4,5
		var arr3 = arr1.slice(-7, -4);//
		console.log(arr3);
                */

  还可以省略end不书写,表示截取到最后一位

/*var arr1 = [1,2,3,4,5,6,7,8,9];
//从下标为2的开始截取,截取到最后一位
		var arr4 = arr1.slice(2);//表示从索引为2的开始截取到最后
		console.log(arr4);//[3,4,5,6,7,8,9]
*/

四、数组排序

  1、reverse()倒序(原数组改变)

只是单纯的将数组中的数据顺序颠倒,不会比较大小

  参数:省略

  返回值:排序后的新数组

案例:

/*var arr = [1,34,3,14,2,6,3,9,56];
var arr1 = arr.reverse();
console.log(arr1);//[56,9,3,6,2,14,3,34,1]
console.log(arr);//[56,9,3,6,2,14,3,34,1]
*/

  2、sort()排序(原数组改变)

排序原理:将数组中每一项转换位字符串,按照字符串编码排序(多位数字或字符串只比较第一位);

字符串编码排序:小写字母 > 大写字母 > 数字

  参数:一个函数,用于比较大小;可以不书写

  返回值:排序后的新数组

不书写参数,案例;

/*var arr = [1,34,3,84,"haha",6,2,true,56];
		var arr2 = arr.sort();
		console.log(arr2);//输出:[1, 2, 3, 34, 56, 6, 84, "haha", true]
		console.log(arr);//输出:[1, 2, 3, 34, 56, 6, 84, "haha", true]
	*/

书写参数,案例:

可以写一个函数用于比较大小;比较函数接收两个参数,如果第一个参数位于第二个参数后面,返回一个正值,如果两个参数相等,返回0,如果第一个参数位于第二个参数的前面,返回一个负值

//升序
var arr1 = [1,12,43,6,5,22,8,6];
function sortNumber(a,b) {
	if(a > b) {
		return 1;
	}else if(a == b) {
		return 0;
	}else if(a < b) {
		return -1;
	}
}
var arr2 = arr1.sort(sortNumber)
console.log(arr2)//[1, 5, 6, 6, 8, 12, 22, 43]
console.log(arr1)//[1, 5, 6, 6, 8, 12, 22, 43]

//降序
var arr1 = [1,12,43,6,5,22,8,6];
function sortNumber(a,b) {
	if(a > b) {
		return -1;
	}else if(a == b) {
		return 0;
	}else if(a < b) {
		return 1;
	}
}
var arr2 = arr1.sort(sortNumber)
console.log(arr2)//[43, 22, 12, 8, 6, 6, 5, 1]
console.log(arr1)//[43, 22, 12, 8, 6, 6, 5, 1]

五、数组转换

  1、jion()用指定分隔符分割数组并转换为字符串

  参数:作为拼接符,不写参数,默认逗号连接

var arr1 = [1,12,43,6,5,22,8,6];
console.log(arr1.join("-"));//1-12-43-6-5-22-8-6
console.log(arr1.join());//1,12,43,6,5,22,8,6
console.log(arr1);// [1, 12, 43, 6, 5, 22, 8, 6]

  2、toSring()转换为字符串big返回

var arr1 = [1,12,43,6,5,22,8,6];
console.log(arr1.toString())//1,12,43,6,5,22,8,6

六、遍历数组

for(var 数组元素变量 in 数组)

var arr1 = [1,12,43,6,5,22,8,6];
for(var i in arr1) {
        console.log(i)
    }

猜你喜欢

转载自www.cnblogs.com/zjp-/p/9134706.html