$('#process').click(function() {
var char_matrix = [];
$('#char_input tr').each(function(e) {
$(this).children('td').each(function() {
var a = $(this).css('background-color').replace(/\D+/g, '');
if (a === '2551650') {
char_matrix[e] += "0";
} else {
char_matrix[e] += "1";
}//END IF
});//END EACH
alert(char_matrix[e]);
});//END EACH
});//END FUNC
此代码循环遍历每个表行,每个行单元格创建一个1和0的数组。数组的每个索引都是不同的行,每个索引由一系列1和0组成,表示每行的背景颜色状态。预期输出类似于:
10101010
10101010
10101010
10101010
10101010
10101010
10101010
10101010
实际输出为:
undefined10101010
undefined10101010
undefined10101010
undefined10101010
undefined10101010
undefined10101010
undefined10101010
undefined10101010
我不知道是什么导致每一行在开头都没有定义,而且非常烦人。除了正确的8个二进制值之外,未定义的索引实际上已添加到数组中。我已经尝试将char_matrix定义为全局和局部变量,但无济于事。
我也意识到我可以直接使用Javascript,但在这个项目中,这不是我的选择。
答案 0 :(得分:2)
此行之后
$('#char_input tr').each(function(e) {
添加此行
char_matrix[e] = ""
否则char_matrix[e]
最初未定义。这与您的结果一致
undefined + "1" === "undefined1"