写在node.js文件中
该函数返回错误:
返回ACE职业展览标识符
原始ID示例:46R-002-30BroadJour12_01-12_11
预期产量:46R-002
/*This function is returning the error:
Cannot read property 'substring' of undefined*/
function splitID(originalID){
var aceid = originalID.substring(0,7);
return aceid;
}
//1. Get the ace exhibit occupation id for each of them and put it in a parallel array.
for (var row in values) {
//split the 5th column using our function
var output = splitID(row[4]);
var result = getOccupation(output);
//now we add the split output to our occupation array.
occupationsToInsert.append(result);
}
答案 0 :(得分:0)
如果您可以参考MDN上的文档here,则建议不要使用for...in
来遍历数组,因为它在返回时不会给出一致的值。而是迭代传递给它的相关对象的enumerable
属性。
换句话说,for (var row in values)
不会像预期的那样遍历每个单独的行,而是values
列表的可枚举属性。
因此,对于您的const数组,只需执行以下操作即可找到可枚举的属性
Object.getOwnPropertyNames(values)
将返回以下列表:
["0", "length"]
您实质上是在尝试访问该数组的第四个元素,该元素不存在,因此未定义,从而导致您观察到错误。
答案 1 :(得分:-1)
错误告诉您确切的问题:originalID
未定义。在您的for
循环中,row[4]
导致未定义的值。验证您的values
数组是否包含您所期望的内容。