【问题标题】:How to create dynamic attributes on javascript object如何在 javascript 对象上创建动态属性
【发布时间】:2013-01-03 17:15:14
【问题描述】:

我想知道如何为之前创建的对象设置新属性。 我尝试了循环但没有用。 在此示例中,对象是手动设置的。

var playlist = [    
{   
url : "07_All_The_Young_Dudes.mp3",
title : "All the young dudes"
},
{   
url : "burn.mp3",
title : "Burn"
},
] 

对不起,我会解释得更好。我的系统允许人们发布他们的音乐。一切都是用php完成的。但我也在使用 javascript 来打开手机中播放音乐的可能性。因此,在 PHP 中生成了两个数组:$url$title 我在 javascript 中做了以下代码:

var thestring = "<?php echo $url;?>"; var spliter = thestring.split('|'); var thestring2 = "<?php echo $title;?>"; var spliter2 = thestring2.split('|'); var i;
var url = [];
var title = [];
var playlist = [        
        {         
            url :'',
            title :''
        },
        ];

并把这个循环:

for(i =0; i < spliter.length;i++){              
    playlist.url[i] = spliter[i];
    playlist.title[i] = spliter2[i];    
}

不幸的是,这种循环对我不起作用。

【问题讨论】:

标签: javascript object dynamic element


【解决方案1】:

如果您要向数组中添加一个对象,请执行此操作。

playlist.push({   
    url : "07_All_The_Young_Dudes.mp3",
    title : "All the young dudes"
})

如果您要为数组中的对象添加属性,请按索引选择对象,然后像这样添加。

playlist[0].newProperty = "new value";

【讨论】:

    【解决方案2】:

    Javascript 允许你像这样动态添加属性

    previousCreatedObj.newAttr = [];
    
    previousCreatedObj.another = 2
    

    或者,如果您的对象是和数组,只需添加一个索引。 previousCreatedObj[0].yetAnother = 1

    要将项目添加到数组中,请使用 push

    https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/push

    【讨论】:

      【解决方案3】:
      playList[0].favBeverage = "beer";
      

      【讨论】:

        【解决方案4】:

        谢谢大家的解答,我自己解决了。 我修改了这样的循环: for(i =0; i < spliter.length;i++){
        url[i] = spliter[i]; title[i] = spliter2[i];
        }
        然后我使用了那个 vars,解决了所有问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-25
          • 2013-06-11
          • 2020-10-24
          • 2010-10-26
          • 2021-09-26
          相关资源
          最近更新 更多