2
function myFunction() {
  var item = {};
  item = {id:'myId', rules: {1:'rule1', 2:'rule2'}};
  Logger.log(item);  // {id=myId, rules={2=rule2, 1=rule1}}
  Logger.log(item.rules[1]);  // rule1

  var db = ScriptDb.getMyDb();
  db.save(item);

  var result = db.query({id:'myId'});
  item = result.next();
  Logger.log(item);  // {id=myId, rules={2=rule2, 1=rule1}}
  Logger.log(item.rules[1]);  // undefined, why?

}

元のオブジェクトのように、最後のログが値「rule1」を返すことを期待しています。なぜ現在未定義なのですか?

4

2 に答える 2

1

奇妙なケース、それはバグかもしれません。

次のコードを使用すると、必要なものを取得できます。

...
item = JSON.parse(item.toJson());
Logger.log(item);  // {id=myId, rules={2=rule2, 1=rule1}}
Logger.log(item.rules[1]);  // rule1
...
于 2013-10-30T23:50:06.030 に答える