为什么脚本 Db 查询结果对象不同
Why ScriptDb query result object is different
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",就像在原始对象中一样。为什么现在没有定义?
一个奇怪的情况,它可能是一个错误。
使用以下代码可以得到你需要的东西:
...
item = JSON.parse(item.toJson());
Logger.log(item); // {id=myId, rules={2=rule2, 1=rule1}}
Logger.log(item.rules[1]); // rule1
...
使用数值而不是数字键存储和筛选结果的替代路由。
function myFunction() {
var db = ScriptDb.getMyDb();
var item1 = {id:'myId', rule:{num:1, details:'rule1'}};
var item2 = {id:'myId', rule:{num:2, details:'rule2'}};
var saveResults = db.saveBatch([item1, item2], false);
var results = db.query({id:'myId'});
while (results.hasNext()) {
var item = results.next();
if (item.rule.num == 1)
Logger.log(item.rule.details); // rule1
}
}
相关文章:
- 对象拟合:获取结果尺寸
- JSON.stringify和Object.keys在同一个对象上产生不同的结果
- JQuery Deferred Ajax,将结果保存在调用对象中
- 在页面对象文件中验证sendKeys结果会导致未定义的错误(Protractor)
- 返回带有筛选结果的新JSON对象
- 使用函数for循环遍历对象以更改值,然后返回结果
- 为什么纬度结果对象从谷歌地图 API 更改
- 意外结果,在 ASP.Net 中解析 JSON 对象的数组
- jquery jqgrid 不显示结果,具体取决于 JSON 对象中的参数
- 用逗号分隔返回结果中的对象
- jQuery 循环 JSON 结果,对象作为值
- 正在调用对象中设置的匿名函数,但未得到预期结果
- 当我运行代码时,我得到以下结果 []对象对象] [对象对象],但应该给我一个有序数组
- 剑道角's自动完成在结果中显示对象
- 使用lodash'扩展JS对象实例;s的extend方法会导致奇怪的结果
- 从 $.post() 获取 JSON 对象结果
- 使用 JavaScript 将多个对象结果集的数组合并到单个数组中
- 有选择地返回JSON对象结果
- Json字符串javascript对象结果不匹配
- 提取 JSON 对象结果的某些部分