js最常用的数组方法

一:从数组的首端到或尾端添加删除元素的方法(队列)
1 、push();从数组尾部添加元素
2、pop();从数组尾部删除元素
3 、unshift();从数组首部添加元素
4、shift();从数组首部删除元素

注意:以上四个方法都会改变原数组,并且从首部操作数组会增加消耗(索引重排)

二:其他方法添加删除元素的方法
1 、splice(pos , deleteCount , items);从pos开始删除deleteCount 个元素,并且插入items(新元素)
2 、slice(start , end);创建一个新的数组,截取原数组start到end(不包括end)的元素并放到新数组里面;
3 、concat(…items);返回一个新数组;复制当前数组的所有元素,并向其中添加items;如果items任意一个也是一个数组,那么就取其元素;

例如:

let arr = [1,2]
console.log( arr.concat([3,4]) )//1,2,3,4
console.log( arr.concat([3,4] , [5,6]) )//1,2,3,4,5,6
三:搜索元素
1、indexOf / lastIndexOf(item , pos);从pos位置开始搜索item,如果找到,返回item的位置(索引),如果没有找到,返回-1;
2、includes(item);如果数组有item,返回true;否则返回false;
3、find / filter(func);通过func来过滤元素

例如:find(func)

//find如果它返回 true,则搜索停止,并返回 item。如果没有搜索到,则返回 undefined
let users = [
  {id: 1, name: "张睿"},
  {id: 2, name: "李爽"},
  {id: 3, name: "孟强"}
];
let user = users .find((item , index , array)=>item.id>1)
console.log(user) // {id: 2, name: "李爽"}

为什么没有返回 {id: 3, name: “孟强”}呢?

因为 find 如果它返回 true,则搜索停止,并返回 item。如果没有搜索到,则返回 undefined

例如:filter(func)

let users = [
  {id: 1, name: "张睿"},
  {id: 2, name: "李爽"},
  {id: 3, name: "孟强"}
];
let user = users .filter((item , index , array)=>item.id>1)
console.log(user) // [ {id: 2, name: "李爽"} , {id: 3, name: "孟强"} ]

为什么返回 {id: 3, name: “孟强”}了呢?

因为 filter 返回的是所有匹配元素组成的数组

4、findIndex(func);通过func来过滤元素(几乎和find类似,不过findIndex返回的是索引,并非元素)

例如:

let users = [
  {id: 1, name: "张睿"},
  {id: 2, name: "李爽"},
  {id: 3, name: "孟强"}
];
let user = users .findIndex((item , index , array)=>item.id>1)
console.log(user) // 1

因为 findIndex 如果它返回 true,则搜索停止,并返回 索引

四:遍历元素
forEach(func);

例如:

let users = [
  {id: 1, name: "张睿"},
  {id: 2, name: "李爽"},
  {id: 3, name: "孟强"}
];
let user = users .forEach((item , index , array)=>{
	console.log(item )
	console.log(index )
	console.log(array)
	//{id: 1, name: "张睿"}
	//0
 	// [{…}, {…}, {…}]
 	//{id: 2, name: "李爽"}
	//1
 	//[{…}, {…}, {…}]
 	//{id: 3, name: "孟强"}
 	//2
	// [{…}, {…}, {…}]
})
五:转换数组
1、map(func);根据对每个元素调用func的结果创建一个新数组

例如:

let lengths = ["张睿1", "李爽11", "孟强111"].map(item => item.length);
console.log(lengths); // [3,4,5]
2、sort(func);对数组进行排序

例如:

let arr =  ["1", "3", "2","30","24"];
arr.sort((a , b) => a-b);
console.log(arr ); //["1", "2", "3", "24", "30"]
arr.sort((a , b) => b-a);
console.log(arr ); //["30", "24", "3", "2", "1"]
3、reverse();翻转数组

例如:

let arr =  ["张睿", "李爽", "孟强"];
console.log(arr.reverse()) // ["孟强", "李爽", "张睿"]
4、join();将数组转换成字符串

例如:

["1", "2", "3", "4"].join(',')
//"1,2,3,4"
["1", "2", "3", "4"].join('!')
//"1!2!3!4"

与之对应的split();是将字符串转换成数组(非数组方法)

5、reduce(func, initial) —— 通过对每个元素调用 func 计算数组上的单个值,并在调用之间传递中间结果。
五:其他
Array.isArray(arr) 检查 arr 是否是一个数组。

例如:

let arr = [1,2,3,4];
let str = "";
let obj = {};
console.log(Array.isArray(arr)) // true
console.log(Array.isArray(str)) //false
console.log(Array.isArray(obj)) //false

是就返回true,否则返回false;

完!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值