forEach和map(必须加return)
var arr = [1, 2, 3, 4];//forEacharr.forEach((item,index) =>{console.log(item+"--"+index)})//for...of...for(var i of arr){console.log(i);}//map可以改变数组的每一项,得到一个新的值var res=arr.map(item=>{return item*2})console.log(arr);console.log(res);
例子
var arr=[{name:"html",value:"12px"},{name:"css",value:"13px"},{name:"vue",value:"11px"},]// var res=[];// arr.map(item=>{// var result =parseInt(item.value)*2// res.push({// name:item.name,// value:result// })// })// console.log(res)var res=[]for(var key in arr){arr[key].value=parseInt(arr[key].value)*2;res.push(arr[key])}console.log(res);// arr.map(item=>{// var value=parseInt(item.value)*2// return item.value=value;// })// console.log(arr);// var res=arr.map(item=>{// return item*2// })// console.log(res);
<script>/*1.数组的每一项是基础(简单)类型,执行map不会改变数组原来的结构2.数组的每一项是复杂类型{object},那么执行map方法会改变原来的数据结构*/var arr=[1,2,3];var res=arr.map(item=>{return item*3})console.log(arr);//[1, 2, 3]console.log(res);// [3, 6, 9]var obj=[{name:"li",age:12},{name:"chen",age:12}];var result =obj.map(item=>{return item.age=0})console.log(result)// [0, 0]console.log(obj)//[{name: "li", age: 0},{name: "chen", age: 0}]</script>
some(必须加return)和every(必须加return)
// some 返回boolean 只有数组中一项满足条件,就输出true//every 返回boolean 只有数组中每一项满足某个条件,就输出truevar arr=[1,2,3,4];var res=arr.some(item=>{return item>2;})var b=arr.every(item=>item>2);console.log(res);//trueconsole.log(b);//false
filter过滤(必须加return)
<script>var arr=[1,2,3]var res= arr.filter(item=>item>2);console.log(res);//[3]</script>
例子
<script>var arr=[{name:"小米",price:1999},{name:"红米",price:999},{name:"iPhone",price:9999},{name:"华为",price:3000},]var res=arr.filter(item=>item.price>1000)console.log(res);</script>
findIndex寻找符合条件的第一个元素de下标值
<script>var arr=[1,2,3,2];var index=arr.findIndex(item=>{return item==2;})console.log(index);//1</script>
find 返回值是通过测试(函数内判断)的数组的第一个元素的值(加return)
var arr=[2,4,6];console.log(arr.find(item=>item>=2));//2console.log(arr.find(item=>item>=4));//4
