我正在使用Google工作表和脚本编写从表中查找数据并将记录作为哈希值返回的函数。这样做可能有更好的方法,但现在,我试图返回一个记录散列数组,其中的键是字段名称。JavaScript中的哈希阵列
我遇到的麻烦是从数组中的单个记录哈希中调用一个键。它只是返回'未定义'。下面是我的测试代码的部分,我写一下我的应用程序代码,在那里我遇到的问题:
function hashArrayTest() {
var workbookKey = "I blanked this out"
var tableName = "AttributeChildParentJoin";
var headerRow = 1;
var i;
var attrsJoinObj = new dbEntitySource(workbookKey, tableName, headerRow);
var OutputHashArray = attrsJoinObj.returnHashItems("Parent Attribute", "Child Attribute", "AESTHETICS");
Logger.log("This is the resulting output array of hashes: ");
for(i=0; i<OutputHashArray.length; i++){
Logger.log("-------------" + i + "-------------");
Logger.log(OutputHashArray[i]);
}
Logger.log("Here are the Parent Attributes from each hash: ");
for(i=0; i<OutputHashArray.length; i++){
Logger.log("-------------" + i + "-------------");
Logger.log(OutputHashArray[i]['Parent Attribute']);
}
}
这里的源数据表:
这里是代码输出的日志:
[ - ]这是生成的哈希输出数组:
[ - ] ------------- 0 ---------- ---
[ - ] {'添加日期'='','小孩属性'='颜色','父属性'='AESTHETICS','添加'='','ID'='21'}
[ - ] ------------- 1 -------------
[']添加日期'='','子属性'='完成','父属性'='AESTHETICS','新增' ='','ID'='22'}
[ - ] ------------- 2 -------------
[ - ] { '添加'='','子属性'='材料','父属性'='AESTHETICS','添加'='','ID'='23'}
[ - ] --- ---------- 3 -------------
[ - ] {'添加日期'='','儿童属性'='VBL造型坚持','父属性'='AESTHETICS','添加'='','ID'='24'}
[ - ]以下是父项属性每个哈希:
[ - ] ------------- 0 -------------
[ - ] undefined
[ - ] ---- --------- 1 -------------
[ - ] undefined
[ - ] ------------- 2-- -----------
[ - ] undefined
[ - ] ------------- 3 -------------
在这个输出中,虽然我无法从e中调用['Parent Attribute']键,但看起来好像我成功地创建了一个哈希数组。 ach hash。
我写了一个非常简单的函数来测试我的问题与散列数组,但这次我成功了。 =>
下面的代码:
function rawHashTest(){
var recordHash1 = {};
recordHash1['car'] = 45;
recordHash1['chicken'] = "ten";
var recordHash2 = {};
recordHash2['red'] = 30;
recordHash2['sticks'] = "blue";
Logger.log(recordHash1);
Logger.log(recordHash1['car']);
var hashArray = new Array();
hashArray = [recordHash1, recordHash2];
Logger.log(hashArray);
Logger.log(hashArray[0]);
Logger.log(hashArray[0]["car"]);
}
这里的日志:
[ - ] {鸡=十位,车= 45.0}
[ - ] 45.0
[ - ] [{鸡=十,车= 45.0},{红= 30.0,棍=蓝}
[ - ] {鸡=十,车= 45.0}
[ - ] 45。0
我不明白为什么我能够从我的简单测试代码中的数组中的一个哈希值中调用哈希键值,但不是在测试我的应用程序代码时。我已经尝试了所有不同的方式,并且检查了前导和尾随空格。我在这里错过了什么?
谢谢 尼古拉斯·金凯德
Logger.log(typeof OutputHashArray [0])是什么日志? 你也可以'通过OutputHashArray [i] for-in? – cssimsek