Как добавить массив в массив объекта JSON - PullRequest
0 голосов
/ 26 октября 2019
    var tags = { 

112 :[  
{ "tag":"Shyam", picx: 700, picy: 300 },
{ "tag":"Bob", picx: 340, picy: 120 },  
{ "tag":"Jai", picx: 500, picy: 240 } 
],

114 :[  
{ "tag":"pen", picx: 300, picy: 100 },
{ "tag":"cd", picx: 440, picy: 220 },  
{ "tag":"paper", picx: 600, picy: 440 } 
] };

это массив объектов, которые у меня есть, и я хотел бы добавить следующее в теги переменных

115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
]

Я пытался

tags.push( { 
115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
] } );

, но не сделалработа

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

tag не является массивом, но является объектом. Чтобы добавить данные в объект, вам нужно добавить key, а затем присвоить данные key:

var tags = {
    112: [
        { "tag": "Shyam", picx: 700, picy: 300 },
        { "tag": "Bob", picx: 340, picy: 120 },
        { "tag": "Jai", picx: 500, picy: 240 }
    ],

    114: [
        { "tag": "pen", picx: 300, picy: 100 },
        { "tag": "cd", picx: 440, picy: 220 },
        { "tag": "paper", picx: 600, picy: 440 }
    ]
};

И добавить ключ 115 и назначить необходимые данные:

tags[115] = [
    { "tag":"bob", picx: 350, picy: 180 },
    { "tag":"tom", picx: 450, picy: 200 },
    { "tag":"dave", picx: 620, picy: 430 }
];

console.log(`my tags: `, tags)
0 голосов
/ 26 октября 2019

Вы делаете ошибку во время добавления объекта массива внутри объекта, а метод push используется для добавления объекта в массив. Итак, сначала вам необходимо преобразовать Object в массив, а затем после того, как вы сможете добавить массив в массив Object.

var tags = { 

112 :[  
{ "tag":"Shyam", picx: 700, picy: 300 },
{ "tag":"Bob", picx: 340, picy: 120 },  
{ "tag":"Jai", picx: 500, picy: 240 } 
],

114 :[  
{ "tag":"pen", picx: 300, picy: 100 },
{ "tag":"cd", picx: 440, picy: 220 },  
{ "tag":"paper", picx: 600, picy: 440 } 
]
};
console.log(typeof(tags)); //shows object type
tags=Object.entries(tags);

tags.push({ 
115 :[  
{ "tag":"bob", picx: 350, picy: 180 },
{ "tag":"tom", picx: 450, picy: 200 },  
{ "tag":"dave", picx: 620, picy: 430 } 
] } );
console.log(tags);
...