数组有关的API函数功能表

本文详细介绍了JavaScript数组的push(), pop(), unshift(), shift()等基本操作,以及如何利用sort()进行自定义排序,包括默认排序和自定义比较函数的使用。此外,还涵盖了数组的检测、序列化、截取、索引和迭代方法,如every(), some(), filter(), map(), 和 forEach()。
摘要由CSDN通过智能技术生成

//栈

push()

可接受任意类型的参数,将他们逐个添加到数组的末尾,并返回数组的长度

pop()

从数组的末尾删除最后一项,减少数组的length值,返回移除的项

//队列

unshift()

在数组的前面增加任意个项,并返回新数组的长度

shift()

删除数组的第一个项并返回该项,同时将数组的长度减1

//判断是否是数组

Array.isArray()

结果为true,判断数组是否是array类型

//排序

sort()

(1)直接修改原数组;

(2)默认按照数组元素第一位的ASCII码值从小到大排列

默认排序:该方法会调用每个数组的toString()方法,然后按照字符序列排序(ASCII),参数,不传参

自定义排序:该方法可以接收一个比较函数作为参数,比较函数有两个参数

第一个参数位于第二个参数之前,返回负数

第一个参数位于第一个参数之后,返回正数

默认排序:

var arr1=[3,4,2,6,1];

var result=arr1.sort();

console.log(result);//1,2,3,4,5,6

console.log(arr1);//1,2,3,4,5,6

var arr2=[10,1,23,2];

//console.log(arr2.sort());

arr2.sort();

console.log(arr2);//1,10,2,23

console.log(arr1.reverse());

console.log(arr2.reverse());

//自定义排序  过程--函数作为参数

例子:

var arr = [11,5,23,7,4,1,9,1];

console.log(arr.sort(compare));

//该比较函数适合于大多数数据类型

function compare(v1,v2){

if(v1>v2){return -1;} //升序

else if( v1<v2){return 1;} //降序

else{return 0;}

}

arr.reverse()

反转数组项的顺序,直接修改原数组

//数组序列化

arr.join()

使用指定的字符(连接符)来分隔数组字符串

使用Array.prototype中的  实例方法join()

//应用场景:纯净的数据环境 指定连接符

var str1=arr.join();//,

var str2=arr.join('@');//@

var str3=arr.join('java script');

console.log(str1,str2,str3);

arr.join(“”)能无缝连接

toString()

在默认情况下都会以逗号分隔字符串的形式返回数组项

//数组检测

var arr();

typeOf();   //结果为object

arr instanceof Array     //结果为true,在同一个全局作用域下可以这么判断

Array isArray(arr);   //结果为true,判断arr是否是数组类型

//截取方法

concat()

通过合并连接数组来创建一个新数组,该方法不会更改现有数组,而是返回一个新数组,concat()可以使用任意数量的数组参数

slice()

数组的切割,在数组的某一片段切割,产生新的数组,原数组不会发生任何改变,slice(index_start,index_end);index_end 可写可不写,比如slice(2,4)右边是开区间,不会被截取,左边是闭的,(start,end],如果end被省略,则会切出数组后面的剩余部分.

举例:

var r4=arr2;//简单的地址值的复制,浅拷贝,指向的是同一片内存空间

var r1= arr2.slice(0);//arr2堆中的数据-->r1堆中  深拷贝 指向的不是同一片内存空间

splice()

用于数组删除,插入,替换

原数组会受到影响,返回值就是删除掉的数据项,

splice(index_start,count,新增的内容(可省略))    count表示从索引值开始删除几个内容,如果索引值为负值,就是去倒序查找

//索引方法

通过数据项的值去查找在数据中的索引位置

indexof()

从数组开头向后查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的项,第二个参数(可选)为索引开始位置

lastIndexOf()

从数组末尾向前查找,使用全等操作符,找不到该元素返回-1。第一个参数为要查找的 项,第二个参数(可选)为索引开始位置

//迭代方法

every()

给数组中的每一项运行给定的函数,都满足要求就返回true,不满足就返回false

var arr = [11,5,23,7,4,1,9,1];

var result = arr.every(function(item,index,arr){

return item >2;

});

console.log(result); //false

some()

给数组中的每一项运行给定的函数,有一个满足要求的就返回true

var arr = [11,5,23,7,4,1,9,1];

var result = arr.every(function(item,index,arr){

return item >2;

});

console.log(result); //true

filter()

过滤,给数组中的每一项运行给定的函数,满足要求的保存起来,不满足的不要,返回的是满足要求的数据项组成的数组.

var arr = [11,5,23,7,4,1,9,1];

var result = arr.filter(function(item,index,arr){

return item >2;

});

console.log(result); // [11, 5, 23, 7, 4, 9]

map()

一一映射,对数组中的每一项运行给定的函数,返回每次函数调用的结果形成的数组

var arr = [11,5,23,7,4,1,9,1];

var result = arr.map(function(item,index,arr){

return item * 2;

});

console.log(result); // [22, 10, 46, 14, 8, 2, 18, 2]

forEach()

迭代循环:对数组中的每一项运行给定的函数,没有返回值,常用来遍历元素

var result = arr.forEach(function(item,index,arr){

console.log(item);

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值