数组定义及常用方法总结

465 阅读4分钟

数组是什么

数组是指一组数据的有序集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。(数组是将一组数据存储在单个变量名下的优雅方式。)

如何创建数组

方法一:通过字面量[ ]创建

var arr=['red','blue','yellow']

方法二:通过关键字Array创建

常规方式:var arr=new Array([num])//[num]是可选参数,可通过设置num固定数组的长度

arr[0]='red'

arr[1]='blue'

arr[2]='yellow'

简洁方式:var arr=new Array('red','blue','yellow')

数组常用方法

1.添加数据到数组末尾( Array.push() )

var arr=['red','blue','yellow']

arr.push('pink')//结果:arr=['red','blue','yellow','pink']

2.添加数据到数组首端( Array.unshift() )

var arr=['red','blue','yellow']

arr.unshift('pink')//结果:arr=['pink','red','blue','yellow']

3.删除数组末尾数据( Array.pop() )

var arr=['red','blue','yellow']

arr.pop()//结果:arr=['red','blue']

4.删除数组末尾数据( Array.shift() )

var arr=['red','blue','yellow']

arr.shift()//结果:arr=['blue','yellow']

5.找出某个元素在数组中的索引( Array.indexOf() )

var arr=['red','blue','yellow']

console.log(arr.indexOf('blue'))//结果:1

6.通过索引删除某个元素( Array.splice() 会改变原数组 )

var arr=['red','blue','yellow']

arr.splice(1)//结果:arr=['red']

arr.splice(1,1)//结果:arr=['red','yellow']

arr.splice(1,1,'pink')//结果:arr=['red','pink','yellow']

arr.splice(1,1,'pink','purple')//结果:arr=['red','pink','purple','yellow']

7.遍历数组(Array.forEach())

var arr=['red','blue','yellow']

arr.forEach((item)=>{return console.log(item)})//结果:red blue yellow

8.数组求和(Array.reduce())

var arr=[1,2,3,4,5]

arr.reduce((sum,item)=>{return sum =sum + item},0)//结果:15

9.筛选满足条件的元素,返回值是一个数组(Array.filter()不会改变原数组)

var arr=[1,2,3,4,5]

arr.filter((item)=>{return item>3})//结果:[4,5]

10.测试一个数组内的所有元素是否都满足指定函数的测试,返回的是一个布尔值true/false (Array.every()不会改变原数组)

var arr=[1,2,3,4,5]

arr.every((item)=>{return item>3})//结果:false

11.判断一个数组中是否包含指定的值,返回的是一个布尔值true/false (Array.includes()不会改变原数组)

var arr=[1,2,3,4,5]

arr.includes(1)//结果:true

12.查找数组中满足测试函数条件的第一个元素的索引值,若没有找到则返回-1 (Array.findindex()不会改变原数组)

var arr=[1,2,3,4,5]

arr.findIndex((val)=>{return val>3})//结果:3

13.查找数组中满足测试函数条件的第一个元素值,若没有找到则返回undefined (Array.find()不会改变原数组)

var arr=[1,2,3,4,5]

arr.find((val)=>{return val>3})//结果:4

14.连接两个或多个数组,返回一个新数组 (Array.concat()不会改变原数组)

var arr1=['red']

var arr2=['blue']

var arr3=['yellow']

arr1.concat(arr2,arr3)//结果:['red', 'blue', 'yellow']

15.将一个数组的所有元素按照给定的字符拼接成一个字符串,返回这个字符串 (Array.join()不会改变原数组)

var arr=['red','blue','yellow']

arr.join()//结果:red,blue,yellow

arr.join('-')//结果:red-blue-yellow

16.将数组中元素的位置颠倒,返回该数组 (Array.reverse()会改变原数组)

var arr=['red','blue','yellow']

arr.reverse()//结果:['yellow', 'blue', 'red']

17.将数组进行排序,返回原数组 (Array.sort()会改变原数组)

var arr1=['red','blue','yellow']

arr1.sort()//结果:['blue', 'red', 'yellow']

var arr2=[1,3,3,2,4,6,6,2,1]

arr2.sort((a,b)=>{return a-b})//结果:[1, 1, 2, 2, 3, 3, 4, 6, 6]

var arr3=[1,3,3,2,4,6,6,2,1]

arr3.sort((a,b)=>{return b-a})//结果:[6, 6, 4, 3, 3, 2, 2, 1, 1]

18.将数组转换成数组元素的字符串,用逗号分割 (Array.toString()不会改变原数组)

var arr=['red','blue','yellow']

arr.toString()//结果:red,blue,yellow

19.将数组中指定位置的片段截取,返回截取的数组 (Array.slice()不会改变原数组)

var arr=['red','blue','yellow']

arr.slice()//结果:['red','blue','yellow']

arr.slice(1)//结果:['blue','yellow']

arr.slice(1,2)//结果:['blue']不包含结束元素

20.测试数组中是否有一个元素满足测试函数,返回值为true/false (Array.some()不会改变原数组)

var arr=[1,2,3,4,5]

arr.some((value)=>{return value>3}//结果:true

21.判断是否为数组类型,返回值为true/false (Array.isArray()不会改变原数组)

var arr=[1,2,3,4,5]

Array.isArray(arr)//结果:true

22.将原数组的每一个元素调用函数处理之后返回一个新数组(Array.map()不会改变原数组)

var arr=[1,2,3,4,5]

arr.map((value)=>{return value*2}//结果:[2,4,6,8,10]

23.将拥有 length 属性的对象或可迭代的对象处理后返回一个数组(Array.from()不会改变原数组)

var setObj = new Set(["a", "b", "c"]);

console.log(Array.from(setObj))//结果:["a", "b", "c"]

var arr=[1,2,3,4,5]

var arr1 = Array.from(arr, x => x * 10)

console.log(arr1) //结果:[10, 20, 30, 40, 50]

最后

希望整理的信息对您有所帮助,如果有什么建议,欢迎在评论区留言

不足之处还请批评指教,谢谢!