2016-10-20 2 views
-1

MessageContent.orderedDishes[i] 배열 내에서 for 루프를 실행하려고합니다. 그러나 그 배열 내의 값을 가져 오는 것은 MessageContent.orderedDishes[i]textToSend이라는 변수 안에 있습니다.Javascript - 루프 내에서 생성 된 값에 대한 액세스

 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! 
     }); 
    } 

}

관련 문제