我有一个for循环函数,循环遍历一个对象数组。我想要的是返回输出,清除变量outputHTML
,但return
函数执行循环过程,因此它只返回一次。我该如何重复这个过程?
for (var i = 0; i < data.media.length; i++) {
if (data.media[i].image != undefined) {
outputHTML = '<div class="image">';
// for (var j = 0; j < data.media[i].image.length; j++) {
// console.log(data.images[i]);
// Extract filename
var url = data.media[i].image.src;
var filename = url.substring(url.lastIndexOf('/') + 1, url.lastIndexOf('.'));
// console.log(filename);
outputHTML += '<img src="' + url + '" alt="' + filename + '" />';
// $("body").append(outputHTML);
// };
outputHTML += '</div>';
return outputHTML;
} else {
// If image doesn't exists return empty string
return '';
}
};
&#13;
答案 0 :(得分:3)
为什么不在循环结束时只有return
?
for (var i = 0; i < data.media.length; i++) {
...
};
return outputHTML;
答案 1 :(得分:0)
var outputHTML = '';
for (var i = 0; i < data.media.length; i++) {
if (data.media[i].image != undefined) {
outputHTML += '<div class="image">';
// for (var j = 0; j < data.media[i].image.length; j++) {
// console.log(data.images[i]);
// Extract filename
var url = data.media[i].image.src;
var filename = url.substring( url.lastIndexOf('/') + 1, url.lastIndexOf('.') );
// console.log(filename);
outputHTML += '<img src="' + url + '" alt="' + filename + '" />';
// $("body").append(outputHTML);
// };
outputHTML +='</div>';
}
};
return outputHTML;
答案 2 :(得分:0)
你有一个你告诉要返回的功能。人们会期望它离开这个功能。也许您想将所有结果组合在一起?在这种情况下,由您决定如何组合它们。例如通过连接?
答案 3 :(得分:0)
你可以在for循环中构建outputHTML变量 - 然后在循环完成后返回变量 - 或者你可以从函数中删除for循环并在for循环中调用它。我认为第一种选择最有意义:
function GetOutputHTML(data){
var outputHTML = "";
for (var i = 0; i < data.media.length; i++) {
if (data.media[i].image != undefined) {
outputHTML += '<div class="image">';
// for (var j = 0; j < data.media[i].image.length; j++) {
// console.log(data.images[i]);
// Extract filename
var url = data.media[i].image.src;
var filename = url.substring( url.lastIndexOf('/') + 1, url.lastIndexOf('.') );
// console.log(filename);
outputHTML += '<img src="' + url + '" alt="' + filename + '" />';
// $("body").append(outputHTML);
// };
outputHTML +='</div>';
}
};
return outputHTML;
}
答案 4 :(得分:0)
由于var html = data.media.map(function(item, index) {
if (item.image != undefined) {
var outputHTML = '<div class="image">';
var url = item.image.src;
var filename = url.substring( url.lastIndexOf('/') + 1, url.lastIndexOf('.') );
outputHTML += '<img src="' + url + '" alt="' + filename + '" />';
outputHTML +='</div>';
return outputHTML;
}
// Since you are returning from within the code block above
// (when the condition is true) you don't need to put an
// else statement.
return '';
}).join('');
是return $employees = \DB::table('employees')
->whereBetween(
'HIRE_DATE',
array(
\to_date('13/01/01','mm/dd/yyyy'),
\to_date('07/06/02','mm/dd/yyyy')
)
)
->get();
,您可以使用内置地图函数来获取具有所需输出的数组,然后加入它:
yield