【问题标题】:Add a sub-array into an object in Javascript在Javascript中将子数组添加到对象中
【发布时间】:2018-07-17 15:08:43
【问题描述】:

我有这个对象数组:

    myList = [
        { name: 'line', icon:'line-chart' },
        { name : 'spline', icon: 'spline-chart' },
        { name : 'bar', icon: 'bar-chart' }
    ];

这些对象中的每一个都代表一个按钮。单击该按钮时,它应该会激活该类型的图表。

我必须创建的另一个功能是,当单击这些按钮中的每一个时,它会激活(或停用)其他按钮。

例如,line 按钮必须激活 3 个其他按钮,而 splinebar 必须分别激活一个。

line - single, double, triple
spline - single
bar - triple

二级按钮是这样的:

    mySecondList = [
        { name: 'Single', icon:'a' },
        { name : 'Double', icon: 'b' },
        { name : 'Triple', icon: 'c' }
    ];

当我想在这两者之间建立联系时,我的问题就出现了。

我尝试像这样将第二个数组合并到第一个数组中:

myList = [
    { name: 'line', icon:'line-chart', [{ name: 'Single', icon:'a' }, { name : 'Double', icon: 'b' }, { name : 'Triple', icon: 'c' }] },

    { name : 'spline', icon: 'spline-chart', [{ name: 'Single', icon:'a' }] },

    { name : 'bar', icon: 'bar-chart', [{ name: 'Single', icon:'a' }] }
];

但这似乎不是正确的方法。

有什么建议吗?

【问题讨论】:

  • 没有参数你不能这样做
  • 你必须创建一个对象键来为它分配一个数组。

标签: javascript arrays angularjs object


【解决方案1】:

“myList”列表的内部元素是对象,作为对象,每个属性都需要一个名称,因此您尝试添加的数组无法添加导致缺少名称的原因... 正确的代码应该是:

myList = [
    { name: 'line', icon:'line-chart', myArray:[{ name: 'Single', icon:'a' }, { name : 'Double', icon: 'b' }, { name : 'Triple', icon: 'c' }] },

    { name : 'spline', icon: 'spline-chart', myArray:[{ name: 'Single', icon:'a' }] },

    { name : 'bar', icon: 'bar-chart', myArray:[{ name: 'Single', icon:'a' }] } 

];

【讨论】:

    【解决方案2】:

    为数组添加一个名称。使用这样的东西:

    var myList = [
        { name: 'line', icon:'line-chart', arr: [{ name: 'Single', icon:'a' }, { name : 'Double', icon: 'b' }, { name : 'Triple', icon: 'c' }] },
    
        { name : 'spline', icon: 'spline-chart', arr: [{ name: 'Single', icon:'a' }] },
    
        { name : 'bar', icon: 'bar-chart', arr: [{ name: 'Single', icon:'a' }] }
    ];
    

    【讨论】:

      【解决方案3】:

      错误

      myList = [
      { name: 'line', icon:'line-chart', [{ name: 'Single', icon:'a' }, { name : 'Double', icon: 'b' }, { name : 'Triple', icon: 'c' }] }
      ];
      

      你不能在object中插入array而不放param

      正确

      myList = [
      { name: 'line', icon:'line-chart', data: [{ name: 'Single', icon:'a' }, { name : 'Double', icon: 'b' }, { name : 'Triple', icon: 'c' }] }
      ];
      

      你有data参数作为array,你可以把objects放在上面

      myList[0].data.push({ name : 'Triple', icon: 'c' });
      

      [0] 表示object 中的第一个myList

      【讨论】:

        【解决方案4】:

        你不能只给一个对象添加一个值,你需要遵守键值格式。

        意思:

        { name : 'spline', icon: 'spline-chart', FIELD_NAME: [{ name: 'Single', icon:'a' }] }

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-11-22
          • 2021-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多