首页 > 解决方案 > 应用程序脚本未按正确顺序返回对象

问题描述

大家下午好,

我对编码相当陌生。我因为喜欢解决问题和更好地改善我的业务管理而开始编码。如果我可能显得粗鲁,请原谅我。我希望向最好的人学习。

在我的脚本编辑器中,我有以下代码。

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|

有人可以解释为什么会这样吗?如果您需要任何进一步的说明,请告诉我!

标签: javascriptarraysfunctionobjectgoogle-apps-script

解决方案


parDetails.push({code, name, dob, gender, health});

在这一行中,您将一个 javascript对象推送到数组。

对象是键值对,键的显示顺序没有定义。当你这样做时{a},它与{a: a}.

例如,

var a = 5
var b = {a} // Implicitly it is doing b = {a: 5}
console.log(b.a) // To access the value

您不能依赖键的顺序。


推荐阅读