admin管理员组

文章数量:1394193

    var elements = document.getElementsByClassName("someClass");
    var obj = {};
    for (var i = 0; i < elements.length; i++){
        obj.userId = elements[i].id 
    } 

// output: obj = {userId: 1, userId: 2, userId: 3.....etc}

Is it possible in some way? Thanks.

    var elements = document.getElementsByClassName("someClass");
    var obj = {};
    for (var i = 0; i < elements.length; i++){
        obj.userId = elements[i].id 
    } 

// output: obj = {userId: 1, userId: 2, userId: 3.....etc}

Is it possible in some way? Thanks.

Share Improve this question asked Dec 9, 2015 at 10:06 Serhio g. LazinSerhio g. Lazin 9,6526 gold badges27 silver badges33 bronze badges 4
  • I think you can not use same key, it will override. obj["userId"] = elements[i].id ; – Shubham Commented Dec 9, 2015 at 10:07
  • it is not possible in an object. please use an array for this purpose like ` [{userId: 1}, {userId: 2}, {userId: 3}]`. – Nina Scholz Commented Dec 9, 2015 at 10:08
  • key name of same object must be unique – Anik Islam Abhi Commented Dec 9, 2015 at 10:08
  • So answer is "not possiple". You could say obj ['userId'+i]=elements [i].id – el3ien Commented Dec 9, 2015 at 10:21
Add a ment  | 

2 Answers 2

Reset to default 4

keys in Object must be unique, you can try use Array, like this

var obj = [];
var data = {};
for (var i = 0; i < elements.length; i++) {
   data = {
     userId: elements[i].id 
   };
   obj.push(data);
} 

// [ {userId: 1}, {userId: 2} ... ] 

The JSON RFC says "the names within an object SHOULD be unique" - see here for more info however should your object have a duplicate key the last occurrence will be used.

An array would be a better solution for your data.

本文标签: Javascript add properties with the same name to an objectStack Overflow