1、forEach 数组遍历,没有返回值)
let arr = [{name:'1'},{name:'2'},{name:'3'}];
arr.forEach((item,index)=>item.addAge = 12)
console.log(arr);
打印结果:
[
{name: '1', addAge: 12},
{name: '2', addAge: 12},
{name: '3', addAge: 12}
]
2、map 在不改变原数组的情况下,更新数组,并返回这个新数组,也就是说要重新赋值给一个新数组
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.map(item=>item.name)
console.log(newArr);
测试结果:(3) ['1', '2', '3']
3、filter 遍历筛选。在不改变原数组的情况下,创建一个数组,新数组内容是筛选后的
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.filter((item,index)=>index>1)
console.log(newArr);
测试结果:[{name: '3'}]
4、find 不创建新数组,不改变原数组,遍历数组,返回数组中找到的第一个符合条件的元素,找到后立即跳出整个循环,没找到返回undefind
情况一:
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.find((item,index)=>item.name==2)
console.log(newArr);
测试结果:{name: '2'}
情况二:
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.find((item,index)=>item.name==4)
console.log(newArr);
测试结果:undefined
5、findIndex 与find类似,返回的值为查询到的第一个符合条件的下标,没有找到则为-1
第一种:
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.findIndex((item,index)=>item.name==2)
console.log(newArr);
测试结果:1
第二种:
let arr = [{name:'1'},{name:'2'},{name:'3'}];
let newArr = arr.findIndex((item,index)=>item.name==4)
console.log(newArr);
测试结果:-1
6、some. 用于检测数组中的元素是否符合条件,只要有一个符合都返回true,反之返回false
第一种:
let arr = [1,2,3];
let newArr = arr.some(item=>item>=3)
console.log(newArr);
测试结果:true
第二种:
let arr = [1,2,3];
let newArr = arr.some(item=>item>=5)
console.log(newArr);
测试结果:false
7、every. 用于检测数组中的元素是否符合条件,只有全部都符合条件才为true,反之为false
第一种:
let arr = [1,2,3];
let newArr = arr.every(item=>item>=1)
console.log(newArr);
测试结果:true
第二种:
let arr = [1,2,3];
let newArr = arr.some(item=>item>=2)
console.log(newArr);
测试结果:false
8、reduce 数组累加计算 回调函数的参数:pre: 上一次计算的结果 next: 当前元素的下一项index: next项的序列 arr: 数组本身
第一种: 计算求和
let arr = [1,2,3,4];
let newArr = arr.reduce((prev, next, index)=>{
return prev + next
})
console.log(newArr);
测试结果:10
第二种 :数组扁平化
let arr = [[1,2],[3,4,5],[6,7]];
let newArr = arr.reduce((prev, next, index)=>{
return prev.concat(next)
})
console.log(newArr);
测试结果:(7) [1, 2, 3, 4, 5, 6, 7]
第三种:对象数组叠加计算
let arr = [{price:10,num:1},{price:15,num:2},{price:20,num:3}];
let newArr = arr.reduce((prev, next, index)=>{
return prev + next.price*0.1
},0)
console.log(newArr);
测试结果:4.5
9、includes 判断数组是否包含某一值,不用return,也不用回调函数
let arr = [200,404,505,502,500];
let newArr = arr.includes(200);
let newArr2 = arr.includes(201);
console.log(newArr); //true
console.log(newArr2); //false
10.join 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的
let arr = ['一','二','三','四'];
let newArr = arr.join(",");
console.log(newArr);
测试结果:一,二,三,四
11、from数组结构转换为数组实例
let newArr = Array.from({ length: 6 }, (item, index) => index);
console.log(newArr);
测试结果:[0, 1, 2, 3, 4, 5]
12、of可以把一组参数转换为数组
Array.of((1,2,3,4,5));
测试结果:[1, 2, 3, 4, 5]
13、 Object.keys() 获取数组的键值;Object.values()获取数组的值;Object.entries()返回一个数组,其元素是与直接在object
上找到的可枚举属性键值对相对应的数组
let arr = {"name":'测试',"age":12,"sex":'女'};
let keysArr = Object.keys(arr);
let valuesArr = Object.values(arr);
let entriesArr = Object.entries(arr);
console.log('keysArr',keysArr);
console.log('valuesArr',valuesArr);
console.log('entriesArr',entriesArr);
测试结果:
'keysArr',["name", "age", "sex"]
'valuesArr',["测试", 12, "女"]
'entriesArr',[["name", "测试"]["age", 12]["sex", "女"]]