我已经离线测试了我的javascript代码,它工作得很好。然而,当我在google script中尝试相同的代码时,它的工作方式与脱机不同。代码如下:
function myfunction(){
Data = [
{
"prefix": [
{
"prefix": "rr",
"uri": "http://www.w3.org/ns/r2rml#"
},
{
"prefix": "rdf",
"uri": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
},
{
"prefix": "xsd",
"uri": "http://www.w3.org/2001/XMLSchema#"
},
{
"prefix": "rdfs",
"uri": "http://www.w3.org/2000/01/rdf-schema#"
},
{
"prefix": "domain",
"uri": "http://example.com/"
}
],
"rr:subjectMap": [
{
"rr:class": "Person"
},
{
"rr:template": "notemplate"
}
],
"predicatesObjectMapsArray": [
{
"rr:predicateObjectMap": [
{
"rr:predicate": "firstName"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 1
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "lastName"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 2
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "id"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 3
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "department"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 4
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "phoneNumber"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 5
}
]
}
]
}
],
"rr:logicalTable": [
{
"rr:logicalTable": "Person"
}
]
},
{
"prefix": [
{
"prefix": "rr",
"uri": "http://www.w3.org/ns/r2rml#"
},
{
"prefix": "rdf",
"uri": "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
},
{
"prefix": "xsd",
"uri": "http://www.w3.org/2001/XMLSchema#"
},
{
"prefix": "rdfs",
"uri": "http://www.w3.org/2000/01/rdf-schema#"
},
{
"prefix": "domain",
"uri": "http://example.com/"
}
],
"rr:subjectMap": [
{
"rr:class": "Company"
},
{
"rr:template": "notemplate"
}
],
"predicatesObjectMapsArray": [
{
"rr:predicateObjectMap": [
{
"rr:predicate": "id"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 1
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "employer"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 2
}
]
}
]
},
{
"rr:predicateObjectMap": [
{
"rr:predicate": "employerid"
},
{
"rr:objectMap": [
{
"rr:datatype": "xsd:string",
"rr:template": "none",
"rr:column": 3
}
]
}
]
}
],
"rr:logicalTable": [
{
"rr:logicalTable": "Company"
}
]
}]
for (var i=0; i<Data.length; i++) {
for (var triple in Data[i]) {
Logger.log(triple);
}
}Logger.log结果为000000000...
我怀疑,在google script中(为了数据中的价值)工作方式可能会有所不同。或者它在一般情况下工作正常?我是否应该在不同的地方寻找错误,而不是?
发布于 2014-02-26 17:53:49
下面的示例在GAS中按预期工作:
function myfunction(Data) {
var sum = 0;
for (var value in Data) {
sum += Data[value];
}
return sum;
}
function test_myfunction() {
var Data = [1, 2, 3];
var result = myfunction(Data);
Logger.log(6 === result); // True
}你能不能给出一个例子,详细说明你的具体案例?这将会帮助我们帮助你。
更新
我不能重现这个问题。下面是我使用你的代码得到的输出:

https://stackoverflow.com/questions/22028974
复制相似问题