所以基本上我一直在使用Javascript开发一个小型的个人项目,我遇到了麻烦.我正在尝试使用Javascript从2D数组生成HTML列表.这是我的代码:
function generatePageFromArray(page, array){
var entry, i, j;
for (i = 0; i < array.length; ++i) {
entry = array[i];
for (j = 0; j < entry.length; j = j + 2) {
page = page + '<tr>'+
'<td class="favoritesContainer"><input type="checkbox" class="favorites"></input></td>';
page = page + '<td class="english">' + entry[j,0] + '</td>';
page = page + '<td class="spanish">';
if (entry[j,1].indexOf("|") > 0){
var spanishTerms = entry[j,1].split("|");
var strLength = spanishTerms.size;
for (i = 0; i < strLength; i++){
page = page.concat(spanishTerms[i] + '<br>');
}
}
else{
page = page + entry[j,1];
}
page = page + '</td>'
page = page + '</tr>';
}
}
return page;}
Run Code Online (Sandbox Code Playgroud)
它不断抛出一个Uncaught RangeError:此行上的字符串长度无效:
page = page + '<tr>'+
'<td class="favoritesContainer"><input type="checkbox" class="favorites"></input></td>';
Run Code Online (Sandbox Code Playgroud)
我不知道为什么.我也试过使用.concat()来追加,但没有.
Poi*_*nty 12
您的二维数组访问不正确,但主要问题是您i在内循环中重用变量:
for (i = 0; i < strLength; i++){
page = page.concat(spanishTerms[i] + '<br>');
}
Run Code Online (Sandbox Code Playgroud)
这i与i你的外循环相同.因此,您得到的错误告诉您,您正在构建一个超出运行时系统容量的大型字符串.为该循环声明一个新变量.
从数组数组中访问值需要两组[ ]:
entry[j][0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26641 次 |
| 最近记录: |