目录

一、Array.from()方法复制数组 ES6方法

二、Array.of()的用法   把传入一组参数,返回一个数组;

三、es5里面的数组的循环方法

arr.map(参数1,参数2)方法,参数用法同上  非常有用,做数据交互映射

arr.filter():过滤,过滤一些不合格元素,使用return返回 

arr.some()  判断是否有某个元素(又一个符合条件),有即返回true,没有返回false;

arr.every() 判断每一个,又一个不满足条件即返回false ,否则返回true;

四、ES6新增的方法

arr.reduce((prev,cur,index,arr)=>{})   从左往右

arr.reduceRight()  从右往左

Math.pow(a,b)  计算a的b次方;

ES6新写法  a**b  计算a的b次方;

for...of循环

for...in循环

五、arr.find()方法 找到数组里面是否有满足某个条件的第一个值,并返回,没有找到则返回undefined;

六、arr.findIndex() 方法,找到数组里面是否有满足某个条件的值的下标,没有即返回-1;

七、arr.fill() 数组填充

八、arr.includes()判断是否包含,返回布尔值;类似arr.indexOf();


一、Array.from()方法复制数组 ES6方法

作用:把类数组转成数组

ES6以前把伪数组转数组的方法:

let arr=document.querySelectorAll("ul li");
let arrLi=[].slice.call(arr);//把类数组转数组;
let json={//伪数组  只要具备length属性
	0:'apple',
	1:'bnana',
	2:'orange',
	length:3
};
console.log(Array.from(json));//把伪数组转数组

 

let a=[1,2,3];
let b=Array.from(a);
console.log(b);
a[1]=0;
console.log(b);

二、Array.of()的用法   把传入一组参数,返回一个数组;

console.log(Array.of('a','b','c','d'));//["a", "b", "c", "d"]

 

三、es5里面的数组的循环方法

arr.forEach(参数1,参数2)方法,代替普通的for循环;

  1. 参数1:表示要执行的回调方法;
  2. 参数2:表示this 指向;
  3. 也可以写成 参数1.bind(指向的this对象)
let arr=[1,2,3,4,5,6];
let obj={};
arr.forEach(function(val,index,arr){
	console.log(this,val,index,arr);
},obj);

arr.map(参数1,参数2)方法,参数用法同上  非常有用,做数据交互映射

不同的是:

  1. 正常情况下,需要配合return,返回一个新数组;
  2. 若是没有return,相当于forEach方法;
  3. 注意:使用此方法,一般都用return返回;
  4. 重新整理数据结构
let arr=[
	{title:'a1',age:'b1',hot:'c1'},
	{title:'a2',age:'b2',hot:'c2'},
	{title:'a3',age:'b3',hot:'c3'},
	{title:'a4',age:'b4',hot:'c4'},
];
let arr1=arr.map((val,index,arr)=>{
	let obj={};
	obj.t=`${val.title}''''`;
	obj.a=`22222${val.age}`;
	obj.h=`3333${val.hot}`;
	return obj;
});
console.log(arr1);

arr.filter():过滤,过滤一些不合格元素,使用return返回 

let arr=[
	{title:'a1',age:'b1',hot:false},
	{title:'a2',age:'b2',hot:true},
	{title:'a3',age:'b3',hot:false},
	{title:'a4',age:'b4',hot:true},
];
let arr2=arr.filter((val,index,arr)=>{
	return val.hot;//为true即返回
})
console.log(arr2)

arr.some()  判断是否有某个元素(又一个符合条件),有即返回true,没有返回false;

let arr=[
	{title:'a1',age:'b1',hot:false},
	{title:'a2',age:'b2',hot:true},
	{title:'a3',age:'b1',hot:false},
	{title:'a4',age:'b4',hot:true},
];
let bool=arr.some((val,index,arr)=>{
	return val.age=='b1';//为true即返回一个布尔值
});
console.log(bool);

arr.every() 判断每一个,又一个不满足条件即返回false ,否则返回true;

四、ES6新增的方法

arr.reduce((prev,cur,index,arr)=>{})   从左往右

let arr=[];
for(let i=1;i<=100;i++){
	arr[i]=i;
}
let num=arr.reduce((prev,cur,index,arr)=>{
	console.log(prev,cur,index,arr);
	return prev+cur;
})
console.log(num);//5050

arr.reduceRight()  从右往左

Math.pow(a,b)  计算a的b次方;

ES6新写法  a**b  计算a的b次方;

for...of循环

  1. arr.keys();
  2. arr.values();
  3. arr.entries();
let arr=['apple','bnane','orange','tea'];
for(let item of arr){//此时arr默认为arr.values()
	console.log(item);//数组里面的每一项值
}
for(let index of arr.keys()){
	console.log(index);//数组里面的每一项的下标
}
for(let item of arr.entries()){
	console.log(item);//数组里面每一项的下标和值(对象)
}
for(let [index,item] of arr.entries()){
	console.log(index,item);//数组里面每一项的下标和值
}

for...in循环

 

五、arr.find()方法 找到数组里面是否有满足某个条件的第一个值,并返回,没有找到则返回undefined;

let arr=[11,21,31,41,51,61,71,81];
let res=arr.find((val,index,arr)=>{//返回第一个满足条件的值,没有找到即返回undefined
	return val>4;
})
console.log(res);

六、arr.findIndex() 方法,找到数组里面是否有满足某个条件的值的下标,没有即返回-1;

七、arr.fill() 数组填充

arr.fill('被填充值');
arr.fill('被填充值','起始填充位置','结束位置')

八、arr.includes()判断是否包含,返回布尔值;类似arr.indexOf();