JS associative object with duplicate names

2019-01-27 04:02发布

ok, so I have an object like:

var myobject = {
   "field_1": "lorem ipsum",
   "field_2": 1,
   "field_2": 2,
   "field_2": 6
};

as you see there are duplicate names in the object, but with different values. If i go through it like (using jQuery):

$.each(myobject, function(key, value)
{
   console.log(key);
   console.log(myobject[key]);
   console.log(myobject[value]);
}

key - returns the correct key
myobject[key] - returns the name for that key
myobject[value] - returns the last elements', with that name, value

meaning for field_2 it will return 6, though it'll print it 3 times, as it repeats 3 times in the object.

My question is how to obtain the correct value for that duplicate named fields and not just the last one's

Thank you

8条回答
做自己的国王
2楼-- · 2019-01-27 04:41

The keys must be unique.

查看更多
孤傲高冷的网名
3楼-- · 2019-01-27 04:42

Associative arrays do not exist in Javascript - what you have created is an Object using the JSON format.

I suspect that something like this will give you more what you are seeking, though I suggest questioning exactly what it is that you are trying to achieve..

The following code will allow you to access multiple instances of duplicated 'keys', but is

var myDataset = [
   { "field_1": "lorem ipsum" },
   { "field_2": 1 },
   { "field_2": 2 },
   { "field_2": 6 }
];


$.each(myDataset, function(valuePairIndex, value)
{
    $.each(myDataset[valuePairIndex], function(key, value1)
    {
       var valuePair = myDataset[valuePairIndex];
       console.log(valuePairIndex);
       console.log(key + ' = ' + valuePair[key]);

//       console.log('key = ' + key);
//       console.log('valuePair[key] = ' + valuePair[key]);
    });
});
查看更多
登录 后发表回答