javascript - javascript forEach 输出中未定义的字符串

标签 javascript arrays foreach

var tmu, categories = [['Morning','am'],['Evening','pm']], 
days = ['mon', 'tue', 'wen', 'thu', 'fri', 'sat', 'sun'],
fullDay, i;

tmu += '<table>';

categories.forEach(function(ele){ 
tmu += '<tr id="periodTitle">';
tmu += '<td colspan=7 style="text-align:center;">'+ele[0]+'</td>';
tmu += '</tr>';
for(i = 0; i <= 6; i++){
tmu += '<td id="'+days[i]+'-'+ele[1]+'">x</td>';    
}        
});
tmu += "</table>";
console.log(tmu);

我正在尝试编写一些代码来循环创建一些表,但是它不断在循环的开头添加一个未定义文本,我不知道为什么,其他一切都很好。关于如何发生这种情况有什么想法吗?

fiddle link is here 。感谢您提前提供任何帮助!!

最佳答案

这将解决它:

var tmu = '';

当您声明变量但未分配值时,tmu 将是 undefined当你这样做时tmu += '<table>'; , tmu将被强制转换为字符串 - 即未定义。

关于javascript - javascript forEach 输出中未定义的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21328391/

相关文章:

javascript - 即使提供 API key 后,Google map 也不会显示

php - foreach循环返回问题

php - 为什么我不能在 foreach 循环中将元素插入子数组?

Java--使10个整数排序程序递归

c - 遇到指针问题

r - 在 R 中并行执行 glmnet

javascript - Magento - 动态加载 CSS 和 JS

javascript - react 测试库 : Unable to Change Material UI DatePicker Input Value

javascript setinterval 不会以低间隔同步触发

c++ - 我可以将二维数组视为连续的一维数组吗?