无法获得改变变量的功能

时间:2015-07-30 00:34:49

标签: javascript function variables

我正在运行一个获取字段名称值的函数,并将所需的变量设置为该字段名称。问题是变量没有返回任何值,我不知道为什么?必须有一些我做错的事情,但这对我来说并不明显。

 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字段变量。

2 个答案:

答案 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);
});
相关问题