js之数组常用方法

本文详细介绍了JavaScript中数组的各种方法,包括检测、转换、栈、队列、重排序、操作、位置及迭代等方法。通过实例展示了如何使用这些方法进行数组的操作,如遍历、映射、过滤和求和等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 检测数组
value instanceof Array //一个网页或者一个全局作用域而言,instanceof操作符就能判断
Array.isArray() //多个框架,多个执行环境
  • 转换方法
//都是创建数组值的以逗号分隔的字符串
toLocaleString(); //调用的是每项元素的toLocaleString()方法
toString(); //调用的是数组每一项的toString()方法
valueOf(); //同上

//使用不同的分隔符来构建字符串
join();//接受一个参数,即用作分隔符的字符串,返回一个新的数组
  • 栈方法
push();//接受任意数量的参数,将其逐个添加到末尾,并返回修改后数组的长度
pop();//从数组尾部移除最后一项,减少数组的length值,返回移除的项
  • 队列方法
shift();//移除队列中的第一个并返回该项,同时数组长度-1
unshift();//在数组前端添加任意个项并返回新数组的长度
  • 重排序方法
reverse();//数组反转,改变原数组
sort();//数组字符串排序,改变原数组,默认升序;可加参数类似于C++中的cmp函数
  • 操作方法
concat();//基于当前数组中的所有项创建一个新数组
slice();//基于当前数组中的一或多个项创建一个新数组,类似于切片操作

var colors = ["red","green","blue","yellow","purple"]
var colors1 = colors.slice(1);
var colors2 = colors.slice(1,4);
colors1; //["green", "blue", "yellow", "purple"]
colors2; //["green", "blue", "yellow"]

splice();//删除数组中的项,向数组中部插入项
         //删除:splice(0,2),需要删除的第一项的位置和要删除的项数
         //插入:splice(0,2,"red","green"),从当前数组的位置2开始插入字符串"red","green"
         //替换:splice(2,1,"red","green")会删除当前数组位置2的项,然后从位置2开始插入字符串"red","green"
  • 位置方法
//两个参数,要查找的项和(可选的)表示查找起点位置的索引。都返回要查找的项在数组中的位置,没找到返回-1
indexOf();//从数组的开头(位置0)往后找
lastIndexOf();//从数组的末尾开始向前查找
  • 迭代方法
every();//对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
filter();//对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach();//对数组中的每一项运行给定函数,这个方法没有返回值
map();//对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
some();//对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
  • 缩小方法
//迭代数组的所有项,然后构建一个最终返回的值
reduce();//从数组的第一项开始,逐个遍历到最后
reduceRight();//从数组的最后一项开始,向前遍历到第一项

//利用两个方法可以求和
var values = [1,2,3,4,5]
var sum = values.reduce(function(prev,cur,index,array){
    return prev+cur;
});
var sum1 = values.reduceRight(function(prev,cur,index,array){
    return prev+cur;
});

sum;//15
sum1;//15
  • 部分方法的用法示例
//遍历数组
[1,2,3].forEach((value , index) => console.log(value));
//控制台打印:
// 1
// 2
// 3

//映射新数组
arr = [1,2,3].map(v => v * 2);
//控制台打印:
// [2,4,6]

//所有元素是否通过了测试
[1,2,3,4].every(v => v > 3);
//控制台打印:
//false

//是否有元素通过测试
[1,2,3,4].some(v => v > 3);
//控制台打印:
// true

//过滤数组
[1,2,3,4,5].filter(v => v > 3);
//控制台打印:
// [4,5]

//查找索引
[1,2,3].indexOf(2);
//控制台打印:
// 1

//连接数组
arr1 = [1 , 2 , 3];
arr2 = [4 , 5 , 6];
[...arr1 , ...arr2];
//控制台打印:
// [1,2,3,4,5,6]

//数组去重
arr = [1,2,3,4,5,4,3,2,1];
[...new Set(arr)];
//控制台打印:
//[1,2,3,4,5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值