数组常用方法总结(含es6)

数组方法

参考《javaS高级程序设计》,总结了以下关于数组的一些方法,如有理解不当,请各位大佬温柔指正

1、判断方法

(1)arr instanceof Array true/false
(2)Array.isArray(arr) true/false

2、转换方法

(1)arr.toString() //arr每一项以逗号拼接

let arr=[]
arr.toString()//""
arr = [[1,2,3,4],1,5,[1,5,3]]
arr.toString()//"1,2,3,4,1,5,1,5,3"

(2)arr.valueOf()//按照原来的数组输出

arr=[]
arr.valueOf()//[]
arr=[1,2,3,]
arr.valueOf()//[1, 2, 3]

(3)arr.toLocaleString()//大部分时候与tostring一样,但是,它为了取得每一项的值,执行每一项的toLocaleString方法

arr = [[1,2,3,4],1,5,[1,5,3]]
arr.toString()//"1,2,3,4,1,5,1,5,3"
3、其他方法

1、push() 入参个数不限,把入参添加在数组的后面,改变原数组,返回添加后的数组长度

let a=[]
let b=a.push(1,2,2)
console.log(a,b)//[1,2,2],3

2、pop() 不用传入参,删除最后一项,返回被删除的项,改变原数组

let a=[1, 2, 3, 5, 3]
let b = a.pop()
console.log(a,b)// [1, 2, 3, 5],3

3、shift() 不用传参,删除第一项,返回被删除的项,改变原数组

let a=[1, 2, 3, 5, 3]
let b=a.shift()
console.log(1,[2,3,5,3])

3、unshift() 入参个数不限,把入参添加在数组的前面,改变原数组,返回添加后的数组长度

var arr = [1,2,3]
let b = arr.unshift()
console.log(b,arr)//3,[1,2,3]
let c = arr.unshift(0,1)
console.log(c,arr)//[0,1,1,2,3]

4、reserve(),数组倒序,返回原数组的倒序,改变原数组

let arr=[1,2,3]
let brr = arr.reverse()
console.log(arr,brr)//[3,2,1],[3,2,1]

5、sort(),排序,改变原数组,返回与改变后的原数组

let arr=[5,0,15,5,2]
arr.sort()//(5) [0, 15, 2, 5, 5]
arr.sort((a,b)=>a-b)//[0, 2, 5, 5, 15]
arr.sort((a,b)=>b-a)//[15, 5, 5, 2, 0]

6、concat(),合并数组,入参不限,将参数中的么一项添加到副本中,返回一个副本

let arr = [0, 15, 2, 5, 5]
f=arr.concat()// [0, 15, 2, 5, 5]
f=f=arr.concat(1,[1,2,[1,2,3,4]])//[1,0, 15, 2, 5, 5, 1, 2, Array(4)]

7.slice(star,end),数组的切割方法,从下标为star截取到下标end,含头不含尾。返回切割下来项组成的数组不改变原数组

let arr= [0, 15, 2, 5, 5]
let brr=arr.slice(1,1)//[],头尾没有差值返回[]
let crr=arr.slice(1,3)// [15, 2]
let drr=arr.slice(-2)//[5,5]
let err=arr.slice(2,0)//[],头大于尾

8、splice(star,number,relace…),数组最强大的方法,插入,切割替换,参数一,开始的下标,参数二:删除的个数,后面的是起始坐标开始插入的内容.返回删除的项组成的数组,

let arr=[1,2,3,4,5,6,6,5]
let brr = arr.splice(1,2,5,6,0,3)
console.log(brr,arr)//[2, 3],[1, 5, 6, 0, 3, 4, 5, 6, 6, 5]

9、indexOf(),从开头开始寻找第一个等于查找目标的项的下标

let arr= [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
arr.indexOf(6)//2

10、indexLastOf(),从结尾开始寻找第一个等于查找目标的项的下标

let arr= [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
arr.indexOf(4)//5

11、filter(),过滤数组,语法:filter((item,index)=>{return …}),返回运行了给定函数之后返回true的项组成的数组

let arr=[1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
let brr = arr.filter(item=>itme>4)//[5, 6, 5, 6, 6, 5]

12、map(),对数组的每一项执行给定的执行函数,返回每次调用的结果组成的的数组
注意,返回结果数组的长度与原数组的长度是一致的,每一项都要返回,没写返回函数则返回undefined

let arr = [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
brr = arr.map(item=>{if(item>4){return item}})
(10) [undefined, 5, 6, undefined, undefined, undefined, 5, 6, 6, 5]
brr = arr.map((item,index)=>{if(item>4){return item}else{return 0}})
(10) [0, 5, 6, 0, 0, 0, 5, 6, 6, 5]

13、forEach(),对数组的每一项执行给定的执行函数

let brr=[];
arr.forEach(item=>{brr.push(item+2)})
console.log(brr)//[3, 7, 8, 2, 5, 6, 7, 8, 8, 7]

14、reduce(),语法reduce((prev,cru,index,array)=>{return …},num)
有num的话第一次函数的执行,prev是num,cru是array[0],
没有num的话,第一次函数的执行,prev是array[0],cru是array[1],
之后的prev是上一次执行函数的return 值

//例:求和
let arr=[1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
var sun = arr.reduce((prev,cru,index,array)=>{console.log(prev,cru,index);return prev+cru})
console.log(sum)//41

15、reduceRight和reduce差不多,只是方向不一样

ES6新增
16、every(),检测数组是否每一项都符合,语法:arr.every((item)=>{return …}),遍历arr,每一项都返回true,则为true,有一项返回false都返回false

let arr = [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
let a = arr.every(item=>item>=0)//true
let b = arr.every(item=>item>0)//false

17、some()检测数组是否至少有一项符合,语法:arr.some((item)=>{return …}),遍历arr,每一项都返回false,则为false,有一项返回true都返回true

let arr = [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
let a = arr.some(item=>item<=0)//true
let b = arr.some(item=>item<0)//false

18、find(),语法:arr.find((item,index,array)=>{return …}),方法返回通过测试(函数内判断为true)的数组的第一个项的值,没有则返回undefined

let arr=[{name:'cc',age:'19'},{name:'ct',age:'18'}]
const item = arr.find((item,index,array) => item.name == "ct");//{name:'ct',age:'18'}
arr.find((item,index,array) => item.name == "tt");//undefined

19、findInde(),语法:arr.findIndex((item,index,array)=>{return …}),方法返回通过测试(函数内判断为true)的数组的第一个元素的值,如果没有返回-1

let arr = [1, 5, 6, 0, 3, 4, 5, 6, 6, 5]
let index0 = arr.findIndex(item=>item==7)

20、includes(),判断数组中是否含有某项,有则返回true,否则为false

console.log([1,3].includes(1))//true
console.log([1,3].includes(2))//false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ES6数组中删除某个指定元素,你可以使用findIndex()方法找到该元素的索引,然后使用splice()方法将其从数组中删除。 以下是一个例子: ```javascript let array = [1,2,3,4,5]; let element = 3; let index = array.findIndex(item => item === element); if (index > -1) { array.splice(index, 1); } console.log(array); // [1, 2, 4, 5] ``` 在这个例子中,我们有一个数组array,想要删除的元素是3。我们使用findIndex()方法找到元素3的索引,然后使用splice()方法数组中删除该元素。最后,我们打印出删除后的数组array,结果是。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [删除数组中某个指定元素或删除数组中某个对象元素](https://blog.csdn.net/weixin_44900104/article/details/125654679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [ES6数组中删除指定元素](https://blog.csdn.net/u013060778/article/details/122693869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值