Javascript—访问for循环内部生成的值
我愿意在数组Javascript—访问for循环内部生成的值,javascript,promise,Javascript,Promise,我愿意在数组MessageContent.orderedishes[I]中运行for循环以获取该数组中的值,但问题是MessageContent.orderedishes[I]位于名为textToSend的变量内部我无法将其移到变量外部,因为该变量的内容将发送到另一个视图 shareWithClient(MessageContent){ let textToSend = '####################' + '\n\n' + 'Dish :
MessageContent.orderedishes[I]
中运行for循环以获取该数组中的值,但问题是MessageContent.orderedishes[I]
位于名为textToSend的变量内部
我无法将其移到变量外部,因为该变量的内容将发送到另一个视图
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!
});
}
正在工作,但仅打印阵列的第一个元素,知道阵列有3个元素:
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');
var textToSend='';
对于(var i=0;i
}循环在哪里?如果它在shareWithClient函数之外,只需将ordered dish作为参数而不是整个MessageContent对象传入即可。到底是什么问题?循环在哪里?什么是i
?@TedHopp问题是我想在testToSend
内部运行for循环,这是obvi这是不可能的,但同时我愿意找到一种方法来获取ArrayID的值,您可以尝试将textToSend
初始化为空字符串,然后运行一个循环来为I
的每个值追加内容。试着使用textToSend+='.###…'
而不是textToSend='+'.
。您想追加吗到textToSend
,而不是每次通过循环重置它。
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!
});
}