收藏
回答

这段代码看不懂啊? 谁帮我瞧瞧。

const之后的{index}是什么意思?

let是什么意思?

forEach我知道是循环,后面也有一个三元表达式。但是中间那一块儿"forEach((v,i) == i",我就不明白了,v和i分别代表什么?


回答关注问题邀请回答
收藏

9 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-12-25

    const {index} = e.detail

    解构赋值,相当于 const index = e.detail.index

    { a } = A

    如果A中不存在a,即A.a不存在,则a = undefined

    { a = 5 } = A

    如果A中不存在a,即A.a不存在,则a = 5,反之a = A.a的值

    { a:c = 5 } = A

    如果A中不存在a,即A.a不存在,则a = 5,反之a = A.a的值,而c是a的别名,即c的值也和a一样


    let的话,和var差不多,都是声明变量的,不过同个变量名不能使用 let 重复声明

    如:

    let a = 5;
    let a = 6; // 会报错 Identifier 'a' has already been declared
    

    而 var 可以重复声明同个变量名的变量

    var b = 5;
    var b = 6;
    


    还有一个const,声明常量的,常量的值声明后不可赋值改变,不然就会报

    const c = 5;
    c = 6; // 会报错 Assignment to constant variable
    


    arr.forEach(fn)

    fn是一个函数,arr的每个元素都会经过这个函数处理, v是数组中每个元素,i是对应数组下标

    (v, i) =>  === index ? v.isActive = true : v.isActive = false
    

    相当于

    function(v, i){
      return i === index ? v.isActive = true : v.isActive = false
    }
    

    --↓↓👍点赞是回答的动力哦

    2019-12-25
    赞同 3
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢,明白了
      2019-12-25
      回复
  • 仙森ღ₅₂₀¹³¹⁴
    仙森ღ₅₂₀¹³¹⁴
    2019-12-25

    (1)

    解构赋值。。

    const {index} = e.detail 相当于 const index = e.detail.index

    (2)

    let、var 都是声明变量的东东,const声明常量的东东,用const写的常量不可以给它赋值,不然会报错。

    (3)

    forEach,循环的i相当于是tabs里每一个元素的下标,判断这个下标等等于从页面内容上拿到的index的话,设置tabs下面的该元素的isActive变量为true 否则false。

    数组结构相当于是这样的。

    tabs: [{ isActive: false },{ isActive: false },{ isActive: false }]

    2019-12-25
    赞同 2
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢  明白了
      2019-12-25
      回复
  • 少年啦
    少年啦
    2019-12-25

    const {index} 这种方式属于es6中的解构赋值

    const 和let都是es6中新出的 const声明的是常量 let声明的是变量


    2019-12-25
    赞同 1
    回复 2
    • 少年啦
      少年啦
      2019-12-25
      foreach中 v代表一个元素  i代表脚标
      2019-12-25
      回复
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢  明白了
      2019-12-25
      回复
  • 老张
    老张
    2019-12-25

    这几个问题基本也属于基础扫盲问题,es6的基本知识,应该你自己去学习。

    2019-12-25
    赞同
    回复 3
    • 何以解忧?
      何以解忧?
      2019-12-25
      小程序的这些基础东西我不知道在哪儿学
      2019-12-25
      回复
    • 老张
      老张
      2019-12-25回复何以解忧?
      没有这些基础知识,我可以肯定我们有些人的详细回答你根本看不懂,比如酸奶的回答,就是跳舞给瞎子看了。至于你,当然是从学习JS开始扫盲了。
      2019-12-25
      回复
    • 何以解忧?
      何以解忧?
      2019-12-25
      有一部分看得懂  有点儿基础的    只不过ES6没接触过
      2019-12-25
      回复
  • Yunior
    Yunior
    2019-12-25

    楼主可能刚过入手js,建议多学习下ES6的基本语法

    2019-12-25
    赞同
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      好的  谢谢
      2019-12-25
      回复
  • 拾忆
    拾忆
    2019-12-25

    const 声明常量 let 声明变量


    cosnt {index} = e.detail //e.detail 是一个集合或是对象 要拿其中的 index

    可以理解为:var index = e.detail.index


    let {tabs} = this.data // this.data 是一个集合或是对象 要拿其中的 tabs

    可以理解为:var tabs = this.data.tabs

    tabs.forEach((v,i)=>{

    // v当前元素 i 当前元素的下标

    //三元表达示 当 i( 当前元素的下标) 等于 index (也就是 e.detail.index)时 当前 元素 v 的属性isActive 动态赋值

    true v.isActive =true false v.isActive=false

    i==index ?v.isActive=true:v.isActive=false

    })

    2019-12-25
    赞同
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢  明白了
      2019-12-25
      回复
  • sheng
    sheng
    2019-12-25

    v是内容,i是v的下标,可以理解为:

    for (var i = 0; i < tabs.length; i++) {

    var v = tabs[i];

    }

    2019-12-25
    赞同
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      明白了   谢谢
      2019-12-25
      回复
  • 沉冰
    沉冰
    2019-12-25

    es6语法

    https://www.runoob.com/w3cnote/es6-tutorial.html

    2019-12-25
    赞同
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢
      2019-12-25
      回复
  • 周
    2019-12-25

    你今天把这个看一下就全懂了,http://es6.ruanyifeng.com/

    2019-12-25
    赞同
    回复 1
    • 何以解忧?
      何以解忧?
      2019-12-25
      谢谢
      2019-12-25
      回复
登录 后发表内容
问题标签