我正在运行一个获取字段名称值的函数,并将所需的变量设置为该字段名称。问题是变量没有返回任何值,我不知道为什么?必须有一些我做错的事情,但这对我来说并不明显。
var latField, longField;
var fieldNames = csvStore.getAttributes(items[0]);
function findSpecificFieldName(originalField, newFieldArray, matchedField){
var matchId;
matchId = arrayUtils.indexOf(newFieldArray,
originalField);
if (matchId !== -1) {
matchedField = originalField;
}
return matchedField;
}
arrayUtils.forEach(fieldNames, function(fieldName) {
findSpecificFieldName(fieldName, latFieldStrings, latField);
findSpecificFieldName(fieldName, longFieldStrings, longField);
});`
我希望latField变量和longField变量在函数中获取matchedField变量的属性,但是它们不接受它的值。在检查matchedField变量是否等于originalField变量时,它返回右侧字段,但它没有将该信息传递给lat和long字段变量。
答案 0 :(得分:2)
您无法通过JavaScript引用传递变量。
您应该简单地指定返回值:
latField = findSpecificFieldName(fieldName, latFieldStrings);
longField = findSpecificFieldName(fieldName, longFieldStrings);
你可以传递一个对象作为第三个参数,在这种情况下,该方法将能够修改它的属性,但这是单一的,并且是错误的方式来从JavaScript中的函数传递返回值。
答案 1 :(得分:0)
似乎你缺少作业
arrayUtils.forEach(fieldNames, function(fieldName) {
latField = findSpecificFieldName(fieldName, latFieldStrings, latField);
longField = findSpecificFieldName(fieldName, longFieldStrings, longField);
});