简介: 我对 JavaScript 有点陌生,需要一些帮助。我想要做的是构建返回一个 html 字符串,我需要将一些变量引入到 html 表中。
问题: 我正在尝试做 forEach 循环来收集我想输出的数据。我可以遍历并让数据返回得很好,但是我在另一个函数中有我的 forEach 循环。
代码:
'<table>' +
'<tr><th>Product Details:</th><th></th><th></th><th></th></tr>' +
'<tr><th>Product</th><th>Manufacture Site</th><th>Business</th><th>Hazmat #</th><th>MSDS</th></tr>' +
myFunction() +
'</table>'...
抱歉,它有点难以阅读。
函数:
function myFunction() {
productDetailsGrid.items.forEach(function(item) {
var prod = item.data.Product;
var sites= item.data.Sites;
var mSDSID = item.data.MSDSID;
var msdsLink = item.data.MSDSLink;
var bus = item.data.Business;
var hazMatNumber = item.data.HazMatNumber
var str = '<tr><th>' + prod + '</th><th>' + sites+ '</th><th>' + bus + '</th><th>' + hazMatNumber + '</th><th><a href="' + msdsLink + '">' + mSDSID + '</a></th></tr>';
return str;
});
}
那么,既然我收到了数据,我如何才能将每个 str 作为字符串返回给调用它的字符串呢?
最佳答案
您可以使用 map
和 join
结果数组代替 forEach
:
function myFunction() {
return productDetailsGrid.items.map(function (item) {
var prod = item.data.Product;
var sites = item.data.Sites;
var mSDSID = item.data.MSDSID;
var msdsLink = item.data.MSDSLink;
var bus = item.data.Business;
var hazMatNumber = item.data.HazMatNumber
return '<tr><th>' + prod + '</th><th>' + sites + '</th><th>' + bus + '</th><th>' + hazMatNumber + '</th><th><a href="' + msdsLink + '">' + mSDSID + '</a></th></tr>';
}).join("");
}
关于另一个函数中的 Javascript forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46955473/