美文网首页
还在为React语法而纠结吗?快来看看

还在为React语法而纠结吗?快来看看

作者: 让代码飞会儿 | 来源:发表于2018-09-21 10:40 被阅读0次

  ···从2016年开始,阮一峰博客的ES6第二版的发布,已经过去两个年头
在这两年中ES6已经应用在前端的各个语法当中。

  作为React框架的基本语言便是ES6,所以掌握ES6的基本语法,对程序员而言已经迫在眉睫,毕竟影响着各位的饭碗。

下面我们看下ES6的新数组操作方法:

  1. forEach 是Array新方法中最基本的一个,就是遍历,循环。
var arr = ["aa","ddd","sada"]

arr.forEach(function(item,index){
    console.log(item+"--"+index)
})
//(打印结果) aa--0 ddd--1 sada--2
  1. Map对象就是简单的键值对映射。其中的键和值可以使任意值。
var arry2 = [1,2,3,4,5,11,22,345,3321]

var arr2 = arry2.map(item=>{
    return item*2
})
console.log(arr2)
//(打印结果) [ 2, 4, 6, 8, 10, 22, 44, 690, 6642 ]
  1. filter为“过滤”、“筛选”之意。指数组filter后,返回过滤后的新数组。用法跟map极为相似:
var arry2 = [1,2,3,4,5,11,22,345,3321]
var arr3 = arry2.filter(item=>{
    return item%2==0
})
//(打印结果) [ 2, 4, 22 ]
  1. reduce是JavaScript 1.8中才引入的,中文意思为“减少”、“约简”。不过,从功能来看,我个人是无法与“减少”这种含义联系起来的,反而更接近于“迭代”、“递归(recursion)”
var arry2 = [1,2,3,4,5,11,22,345,3321]
var list = arry2.reduce((previous, current, index, array)=>{
       return previous + current;
}) 
//previous 计算结果的值  默认第返回第一个值  
//current  当前值
// index 下标
// array 整个数组
1--2
2--3
3--4
.....
最终返回一个结果(一般用于计算总和,和排除对象中的值

下面做一下练习:

var liy = [
    {"name":"小孔","sore":"60"},
    {"name":"li","sore":"80"},
    {"name":"ll","sore":"160"}
]
var cc = liy.filter(item=>{
  return item.sore>60
})
console.log(cc)   //返回大于60的分数
// [ { name: 'li', sore: '80' }, { name: 'll', sore: '160' } ]

改变对象里面的数值

//把小李的年龄改为99  面试经常问到
var xiaoming = {
    "name":"小明",
    "age" : 12,
    "friends" :[
        {   
            "id":1,
            "name":"小红",
            "age":13
        },
        {   
            "id":2,
            "name":"小里",
            "age":14
        },
        {   
            "id":3,
            "name":"小吃",
            "age":19
        }
    ]
}
var ol = {
    ...xiaoming, //展开数组
    "friends":xiaoming.friends.map(item=>{
        //如果是小里返回
        if(item.name=="小里"){
            return{
                ...item,
                "age":99
            }
        }
    //否则返回
        return item 
    })
}

//筛选>13的返回一个新的对象
var superold = {
    ...xiaoming,
   "friends":xiaoming.friends.filter(item=>{
       return item.age>13
   })
}

//得到新数组类似于push  往里面添加新的对象
var xiaoming2 = {
    ...xiaoming ,
    "friends":[{
        "name": "张开",
        "age":90
    },...xiaoming.friends]
 }

 //让张王ID自增加+1
 var xiaoming3= {
    ...xiaoming,
    "friends":[
        ...xiaoming.friends,{
            id:xiaoming.friends.reduce((a,b)=>{
                console.log(a,b,"222")
                return a.id > b.id ? a : b
            }).id+1,
            "name": "张王",
            "age":77
        }
    ]
 }
喜欢的小伙伴动动手指点个赞!~ ❤❤❤

相关文章

网友评论

      本文标题:还在为React语法而纠结吗?快来看看

      本文链接:https://www.haomeiwen.com/subject/vmqanftx.html