如何在Javascript中增加对象的属性?

时间:2014-07-28 11:49:30

标签: javascript json

我尝试创建一个从arraylist填充的表,该表可以根据用户输入而变化。我需要创建一个新的" existingStrings"在每次迭代的数组。目前只显示最后一个值(" c"对于i = 2),这正是我对下面所做的所期望的。我遇到的问题是如何创建" existingString"的新实例?在每次迭代时,对象(this.collection)包含属性" existingStrings" 3次(对于阵列的每个元素一次)。

this.stringList=["a","b","c"];


for (var i=0; i<this.stringList.length; i++){
        this.collection = [  
            {"existingStrings": this.stringList[i]},
        ];
        }

我希望this.collection最终如下所示:

this.collection=[{"existingStrings":"a"},
                 {"existingStrings":"b"},
                 {"existingStrings":"c"}]"

3 个答案:

答案 0 :(得分:4)

试试这个

var stringList=["a","b","c"];
this.collection = []

for (var i=0; i<this.stringList.length; i++){
        this.collection.push({"existingStrings": this.stringList[i]});
        }

答案 1 :(得分:1)

你需要推送集合中的结果而不是覆盖它们

var stringList=["a","b","c"];
var collection = []
for (var i=0; i<stringList.length; i++){
    collection.push({"existingStrings": stringList[i]});
}

答案 2 :(得分:0)

我不确定这是您正在寻找的内容,但您可以push this.collection对象:

var stringList = ["a","b","c"];

stringList.forEach(function(item) {
    if(!this.collection) {
        this.collection = [];
    }

    this.collection.push({"existingStrings": item});
});

这将为您留下输出(this.collection的内容):

[{"existingStrings": "a"}, {"existingStrings": "b"}, {"existingStrings": "c"}]