Javascript:将一个数组分配给另一个数组,该数组是对象的属性

时间:2015-01-12 10:34:42

标签: javascript arrays

所以我有这个数组

var collectData = ["one", "two"];

和一个对象

var datasets = {
   labels : ["something", "something"]
}

在我的程序中,在启动应用程序时动态生成collectData并赋值,我想将这些值分配给对象内的labels数组。我尝试了以下方式

labels : [].concat(collectData)
labels : collectData.slice()

但它没有用。我究竟做错了什么?

3 个答案:

答案 0 :(得分:1)

只需在最初使用的数组上调用concat即可。当您执行[].concat时,您只需将collectData的元素添加到新的数组文字中,最后只需collectData

var collectData = ["one", "two"];
var datasets = {
   labels : ["something", "something"].concat(collectData)
}

此外,您可以在声明对象datasets.labels.concat(collectData)

之后的某个时间内始终datasets

答案 1 :(得分:1)

要修改属性,请使用赋值:

datasets.labels = collectData;

如果要复制collectData数组而不是直接指定数组,请使用:

datasets.labels = collectData.slice();

答案 2 :(得分:1)

我不完全明白你要做的事情,但我有两种选择:

  1. 将数组添加到标签数组中:
  2. 
    
        var collectData = ["one", "two"];
        var datasets = {
           labels : []
        }
        
        datasets.labels.push(collectData);
    
        console.log(datasets.label);
    
    
    

    结果:

    {
        labels: [["one","two"]]
    }
    
    1. 将collectData值添加到datasets.labels数组(除了Amit Joki的答案之外的其他选项)
    2. 
      
          var collectData = ["one", "two"];
          var datasets = {
              labels : []
          }
          for(i=0; i<collectData.length; i++){
              datasets.labels.push(collectData[i]);
          }
      console.log(datasets.labels)
      &#13;
      &#13;
      &#13;

      结果:

      {
         datasets: ["one", "two"]
      }