数组扩展:
1.from():Array.from方法用于将两类对象转为真正的数组,即类似数组的对象和可遍历的对象,任何有length属性的对象和有遍历器接口都可以通过Array.form方法转为数组
2.扩展运算符[...]
3.Array.of()将一组值转换为数组
4.copyWithin()修改当前数组,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组
三个参数:
1.target(必需):从该位置开始替换数据;
2.start(可选):从该位置开始读取数据。默认为0,如果为负值表示倒数
3.end(可选):到该位置前停止读取数据,默认等于数组长度,如果为负值,表示倒数
5.find()找出第一个符号条件的成员,如果没有符号条件的成员返回undefined
用法:需要函数作为参数引入
val:当前的值;index:当前的值的位置;arr:源数组
6.findIndex()找出第一个符号条件的位置的索引,用法同find
7.fill()使用给定值填充一个数组,可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置
8.entries()对键值对的遍历;keys()对键名的遍历
9.filter()过滤元素,返回新数祖,不影响原数组
10.map()遍历数组中的值,对当前数祖修改
11.reduce()遍历数组中的值从头到尾合并
12.reduceRight()遍历数组中的值从尾到头合并
13.for...of循环
<script>
//Array.of()
var arr=Array.of(1,2,3)
console.log(arr);//[1,2,3]
var arr1=Array.of()
console.log(arr1);//[]
var arr2=Array.of(undefined)
console.log(arr2);//[undefined]
//copyWithin()
var arr3=[1,2,3,4,5].copyWithin(0,3);
console.log(arr3);//[4,5,3,4,5]
var arr4=[1,2,3,4,5].copyWithin(0,2);
console.log(arr4);//[3,4,5,4,5]
var arr5=[1,2,3,4,5].copyWithin(1,2,3);
console.log(arr5);//[1,3,3,4,5]
var arr6=[1,2,3,4,5].copyWithin(1,-3,-1);
console.log(arr6);//[1,3,4,4,5]
//find()
var result=[1,5,20,35,45].find(function(value,index,arr){
return value>20;
})
console.log(result);//35
var result=[1,5,8,10].findIndex(function(value,index,arr){
return value>9;
})
console.log(result);//3
//fill()
//数组元素全部被替换
var arr7=[1,2,3].fill(7);
console.log(arr7);//[7,7,7]
//指定元素被替换
var arr8=[1,2,3].fill(7,1,2);
console.log(arr8);//[1,7,3]
//entries()和keys()
var arr9=['sxt','abc'];
var arrkeys=arr9.keys();
for(var key of arrkeys){
console.log(key);//0 1
}
var arr10=['sxt','abc'];
var arrentries=arr10.entries();
for(var obj of arrentries){
console.log(obj);//[0,'sxt'] [1,'abc']
}
//filter()
var arr11=[1,2,3,4,5,6,7,8,9];
//选取大于5的数字
var arr12=arr11.filter(function(value){
return value>5;
})
console.log(arr12);//[6 7 8 9]
//map()
var arr13=[1,2,3];
var arr14=arr13.map(function(value,index,arr){
return <li>value</li>
})
console.log(arr14);//["<li>1</li>","<li>2</li>","<li>3</li>"]
//reduce()
//previous上一次计算结果 current当前值
var arr15=[1,2,3,4].reduce(function(previous,current){
return previous*current;
})
console.log(arr15);//24
//for...of与for...in区别:前者遍历出的是values,后者遍历出的是keys
var obj={
name:'Tim',
age:12,
love:'coding'
};
var arr16=[2,3,4,5];
for(let key in obj){
console.log(key,obj[key]);//name Tim age 12 love coding
}
for(let key in arr16){
console.log(key);//0 1 2 3
}
for(let value of arr16){
console.log(value);//2 3 4 5
}
</script>