1、什么是数组?
数据的组合,每个数据都使用逗号分隔,数据可以是任何类型
2、数组的构成?
1、索引(下标):数组中的数据按照顺序排列,从0开始,把这个叫做索引,也叫做下标
2、元素:把数组中的每个数据叫做元素
3、数组长度:就是元素的个数,数组的最大下标是数组的长度length-1,也就是元素个数-1
3、数组的创建方式?
1、字面量创建 var arr=[];
var arr=[4,5,3,6,2,1];
2、构造函数创建
var arr1=new Array();
例:var arr1=new Array(4,5,3,6,2,1);
4、数组的操作方法
七个内置的改变数组本身的方法:
push -- 尾部添加 返回新数组的长度
pop -- 尾部删除 返回的是被删除的元素
shift -- 头部删除
unshift --头部添加
sort -- 排序 返回排序后的数组
reverse -- 数组反转
splice -- 增加 删除 修改;本质上是删除
数组.splice(从哪里开始的下标,删除的长度,要替换的值)
常用的:
forEach -- 循环遍历数组 对数组进行循环遍历
var arr = [1,2,3,4]
arr.forEach((item,index)=>{
console.log(item,index)
})
filter -- 数组过滤 返回 所有符合条件的元素 一个新数组
var arr = [1,2,3,4,5,6,1]
var a = arr.filter(item=>item>4)
map -- 对数组的每一项进行操作,返回新数组
var a = arr.map(item=>item*3)
some -- 判断数组中是否有满足条件的元素 如果有返回true 没有 false
var a = arr.some(item=>item>30)
every -- 判断数组中是否元素是否全部满足条件 如果是返回true 否则 false
var a = arr.every(item=>item>0)
indexOf -- 查找第一个符合条件的下标,查到不到返回-1
lastIndexOf -- 查找最后一个符合条件的下标,查到不到返回-1
var arr = [1,2,3,4,5,6,1]
let a = arr.indexOf(1)
let a = arr.lastIndexOf(1)
findIndex -- 查找第一个符合条件的下标,查到不到返回-1
find -- 查找第一个符合条件的元素,查到不到返回undefined
var arr = [1,2,3,4,5,6,1]
var a = arr.findIndex(item=>item==1)
var a = arr.find(item=>item==100)
includes -- 是否包含某个元素 如果包含 true;否则 false
var arr = [1,2,3,4,5,6,1]
var a = arr.includes(100)
5、数组和字符串的相互转换
var arr = [1,2,3,4]
console.log(arr.join('-'))
var str = '1-2-3-4'
console.log(str.split('-').map(item=>item*1))
6、循环数组的方法(三种)
var arr = [1,2,3,4]
for(var i=0;i<arr.length;i++){
console.log(arr[i]) //i是下标
}
for(var i in arr){
console.log(arr[i]) //i是下标 arr[i]获取每一项元素
}
for(var i of arr){
console.log(i) //i是元素
}
7、伪数组
伪数组 / 类数组,和数组类似,有数组的长度属性,但是没有数组原型链上的操作方法
常见的伪数组 : arguments nodeList
伪数组转化为 数组:
function fn1(){
console.log()
var arr = Array.prototype.slice.call(arguments)
var arr = [].slice.call(arguments)
var arr = [...arguments]
console.log(arr)
for(var i=0;i<arguments.length;i++){
console.log(arguments[i])
}
console.log(arguments)
arguments.forEach(item=>{
console.log(item)
})
}
fn1(1,2,3,4,5)