数组是什么
数组是指一组数据的有序集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。(数组是将一组数据存储在单个变量名下的优雅方式。)
如何创建数组
方法一:通过字面量[ ]创建
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]
最后
希望整理的信息对您有所帮助,如果有什么建议,欢迎在评论区留言
不足之处还请批评指教,谢谢!