2016-10-20 8 views
-1

配列内の値を取得するために、配列MessageContent.orderedDishes[i]内のforループを実行するつもりですが、textToSendという変数の内部にMessageContent.orderedDishes[i]があります。Javascript - forループ内で生成された値へのアクセス

 var textToSend = ''; 
     for(var i=0; i<MessageContent.orderedDishes.length; i++){ 
     textToSend = '' + 
     '####################' + '\n\n' + 
     'Dish : ' + MessageContent.orderedDishes[i].dishName + '\n' + 
     'Category : ' +MessageContent.orderedDishes[i].categoryName+'\n' + 
     'Qty : ' +MessageContent.orderedDishes[i].qty +'\n\n'+ 
     '####################'; 
     } 
    console.log('textToSend'); 
+2

ループはどこですか?それがshareWithClient関数の外にある場合は、MessageContentオブジェクト全体ではなくパラメータとしてオーダーされた料理を渡すだけです。 – Paul

+5

問題は何ですか?ループはどこですか?私は何ですか? –

+0

@TedHopp問題はまさに私が何とか 'testToSend'の中でforループを実行したいのですが、明らかに不可能ですが、同時に私は配列の値を取得する方法を見つけることを喜んでします –

答えて

0
:その変数の内容が別のビュー

shareWithClient(MessageContent){ 
    let textToSend = 
     '####################' + '\n\n' + 
     'Dish : ' + MessageContent.orderedDishes[i].dishName + '\n' + 
     'Category : ' +MessageContent.orderedDishes[i].categoryName+'\n' + 
     'Qty : ' + MessageContent.orderedDishes[i].qty +'\n\n'+ 
     '####################'; 

    SocialSharing.shareViaWhatsApp(textToSend).then(() => { 
     // Success! 
    }).catch(() => { 
     // Error! 
    }); 
} 

作業が、プリントアレイの最初の要素のみに送信されるように、tがアレイは3つの要素を有していることを知って、可変の外側に移動します

shareWithClient(MessageContent) { 
    let text = ''; 
    if (MessageContent && MessageContent.orderedDishes) { 
    MessageContent.orderedDishes.forEach(buildText); 
    } 
    shareText(); 

    function buildText(dish) { 
    text += `#################### 
      Dish : ${ dish.dishName } 
      Category : ${ dish.categoryName } 
      Qty : ${ dish.qty } 

      ####################`; 
    } 

    function shareText() { 
     SocialSharing.shareViaWhatsApp(text).then(() => { 
     // Success! 
     }).catch(() => { 
     // Error! 
     }); 
    } 

}

関連する問題