Начиная с ES6, есть утверждение, что порядок будет
- первые цифры в возрастающем количестве
- ключи в порядке вставки
Есть это сообщение в блоге и это тема Stackoverflow .
Но ваши строки
var certificate = {
certifications: []
};
сделали certifications
первым свойством. Так что вам понадобится:
var certificate = {};
certificate["firstname"] = "Albert";
certificate["lastname"] = "Lee";
certificate["email"] = "a@b.com";
certificate["certifications"] = [];
certificate.certifications.push({
certificate: "Java",
completed_on: "2020/01/02",
tc_name: "java2020"
});
console.log(certificate);
Чтобы лучше гарантировать заказ, используйте Map
, чтобы сохранить первоначальный порядок вставки ключей. Обычно он может вам не понадобиться, но только по какой-то причине, если вы хотите заказать заказ, и вы можете получить такой заказ в течение 1–1042 *:
var certificate = new Map();
certificate.set('firstname', "Albert");
certificate.set('lastname', "Lee");
certificate.set('email', "a@b.com");
certificate.set("certifications", []);
certificate.get("certifications").push({
"certificate": "Java",
"completed_on": "2020/01/02",
"tc_name": "java2020"
})
console.log(certificate);
for (e of certificate) console.log(e)
StackOverflow ничего не печатает для:
console.log(certificate);
с использованием Node или Chrome, это:
Map {
'firstname' => 'Albert',
'lastname' => 'Lee',
'email' => 'a@b.com',
'certifications' => [
{
certificate: 'Java',
completed_on: '2020/01/02',
tc_name: 'java2010'
}
]
}