2015-03-02 5 views
0

Я хочу вернуть значение из вложенных функций в моем Cordova/JavaScript приложения с некоторыми плагинами, но он не работает, как предполагалось:Возвращаемое значение из вложенных функций в 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 -значением, но оно не работает.

EDITrestaurantNameArr выглядит [{rID: '188', rName: 'Taverne'}, {rID: '192', rName: 'Pub'}, {rID: '193', rName: 'Ducis'}, ...]

+0

Вы удалили условие if (restaurantNameArr.length == 1)? –

+0

'actionSheet (restaurantNameArr) (1)' – GChamon

ответ

0

Вы говорите, объект

{ rid : { rid : {} } } 

это, вероятно, не вложенными в этом роде. Drop the rid

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

вложен как это -> '[{rID: '188'}, {rID: '192'}, {rID: '193'}, ...]' –

+0

Я знаю, но это не то, как вы его закодировали. Вы возвращаете избавление, и вы снова пытаетесь прочитать его. И когда есть только один, вы не возвращаете массив, чтобы это тоже было проблемой. – epascarello

+0

спасибо за ваш комментарий, но на самом деле у меня проблема с 'return actionSheet (restaurantNameArr);', другой фрагмент кода отлично работает –

Смежные вопросы