从JavaScript中的嵌套函数返回值

时间:2015-03-02 16:22:07

标签: javascript function cordova

我想在我的cordova / javascript应用程序中使用一些插件从嵌套函数返回一个值,但是它不能正常工作:

if(restaurantsNearby == true) {
    if(restaurantNameArr.length == 1){
        return restaurantNameArr[0].rID;
    } else {
        return actionSheet(restaurantNameArr);
    }
}

var actionSheetCallback = function(buttonIndex) {
    return window.restaurantNameArr[buttonIndex-1].rID;
};

function actionSheet(restaurantNameArr) {
    var restaurantNames = new Array();
    $.each(restaurantNameArr, function(key, value) {
        restaurantNames.push(value['rName']);
    });
  var options = {
    'title': 'Where are you?',
    'buttonLabels': restaurantNames,
    'androidEnableCancelButton': false,
    'winphoneEnableCancelButton': false
  };
  window.restaurantNameArr = restaurantNameArr;
  window.plugins.actionsheet.show(options, actionSheetCallback);
  return actionSheetCallback;
};

我希望使用第一个window.restaurantNameArr[buttonIndex-1].rID语句返回if的值,但它不起作用。

编辑 restaurantNameArr看起来像[{rID: '188', rName: 'Taverne'}, {rID: '192', rName: 'Pub'}, {rID: '193', rName: 'Ducis'}, ...]

1 个答案:

答案 0 :(得分:0)

你说对象是

{ rid : { rid : {} } }

它可能不是那样嵌套的。放弃摆脱

if(restaurantNameArr.length == 1){
    return restaurantNameArr[0]; //.rID;
} else {