收藏
回答

js多维对象定义


遇到了这样的设计需求,多维对象,且属性名为数字,用变量就定义失败,不用变量就行。当year、month、day为变量的时候就无法定义

最后一次编辑于  2019-02-12
回答关注问题邀请回答
收藏

5 个回答

  • 黎😄
    黎😄
    2019-02-12

    你对js数组对象是不是有什么错误理解?

    {

        year:2019

    }

    这样的year只是一个下标,跟

    {

        ‘year’:2019

    }

    是一样的,这里的year不会是一个变量,只是对象中的下标,或者属性。

    若想把year变成变量那样,可以使用析构符号,

    {

        [`${year}`]:2019

    }

    或者

    {

        [year]:2019

    }

    2019-02-12
    有用 2
    回复 2
    • 2019-02-12

      是的,我没有理解透彻 ,请问您在哪里看到的这番定义?我这样写成功了,我想去看看具体的说明,重新学习下!万分感谢大神指教!

      2019-02-12
      回复
    • 黎😄
      黎😄
      2019-02-12回复

      https://segmentfault.com/a/1190000010159725

      2019-02-12
      回复
  • deRek
    deRek
    2019-02-12

    额, 你没理解Rimifon说的, 其实用[]就好了.{[y]:{[m]:{[d]:{now}}}}

    2019-02-12
    有用 1
    回复 1
    • 2019-02-12

      是我没有理解,您的答案也是正解!!!!万分感谢

      2019-02-12
      1
      回复
  • 小程序开发者
    小程序开发者
    2019-02-12

    mark

    2019-02-12
    有用
    回复
  • 后米米米米
    后米米米米
    2019-02-12

    我这边试了下,没有问题啊


    2019-02-12
    有用
    回复 9
    • 2019-02-12

      有问题,我的year=2019,month=2,变量没有转化为数字……

      2019-02-12
      回复
    • 后米米米米
      后米米米米
      2019-02-12回复

      这样子,刚好以前看到过。(看看是不是这个)略微有点复杂


      2019-02-12
      回复
    • 2019-02-12回复后米米米米

      对对对,就是要这样,一定要逐个声明然后定义么?就不能用我那样的方式,直接定义?

      2019-02-12
      回复
    • 后米米米米
      后米米米米
      2019-02-12回复

      要用[]包住变量的,你试试看。我没试过不清楚

      2019-02-12
      回复
    • 2019-02-12回复后米米米米

      我试过,count【year】【month】【day】={“now”:wors}不行……

      2019-02-12
      回复
    查看更多(4)
  • 峡谷训练师
    峡谷训练师
    2019-02-12

    var m = new Date().getMonth();

     var obj = { [m] : m };

     console.log(obj);

    2019-02-12
    有用
    回复 3
    • 2019-02-12

      一个维度的没问题,可以obj【变量名】,问题是多维……,obj【year】【month】【day】不行啊

      2019-02-12
      回复
    • Maverick
      Maverick
      2019-02-12回复

      你给undefined设置下标当然不行。。。


      obj = {[year]:{[month]:{[day]:{now:123}}}}

      2019-02-12
      1
      回复
    • 2019-02-12回复Maverick

      正解,谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!

      2019-02-12
      回复
登录 后发表内容