大家下午好
我对编码还很陌生。我之所以开始编写代码,是因为喜欢解决问题并更好地改善我的业务管理。如果我看起来很粗鲁,请原谅我。我正在寻找最好的东西。
在我的脚本编辑器中,我有以下代码。
var parDetails = [];
//To add participant data into participant log
function addparDetails(code, name, dob, gender, health){
parDetails.push({code, name, dob, gender, health});
return parDetails;
}
//Participant details [updated]
for (let i = 0; i <= 1; i++){
addparDetails("123151", "John Doe", "18 June 2000","M", "Asthma");
}
Logger.log(parDetails);
It should return in the order of
{code = 123151
name = John Doe
date = 18 June 2000
Gender = M
Health = Asthma}
However, it keeps returning in this order
{dob = 18 June 2000
name = John Doe
gender = M
code = 123151
Health = asthma}
sometimes it can also be in a different order|
有人可以解释为什么会这样吗?如果您需要任何进一步的说明,请告诉我!
答案 0 :(得分:0)
这是objects
在javascript中的工作方式。不能保证它们的键值对的顺序保持不变。您应该尝试Map
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map。
Map
对象保存键值对,并记住键的原始插入顺序。
答案 1 :(得分:0)
parDetails.push({code, name, dob, gender, health});
在这一行中,您正在将JavaScript Object推送到数组。
对象是键值对,并且未定义键显示的顺序。当您执行{a}
时,它与{a: a}
相同。
例如,
var a = 5
var b = {a} // Implicitly it is doing b = {a: 5}
console.log(b.a) // To access the value
您不能依赖按键的顺序。