我有一个数组(拼接为大小 2),用于跟踪用户单击的内容(第一次、最后一次)。第一个和最后一个元素是唯一的。
我正在尝试根据用户点击的内容加载内容。发生的奇怪的事情是,除非我执行 2 个 console.logs,否则我看不到更新的数组。如果 1 个日志已完成,则数组不会更新。我猜这与数组执行/操作时间有关。
我调试的方法是使用单击处理程序来记录并单击以查看数组值。有什么建议或提示吗?
我以前从未遇到过这个问题。谢谢。
var clicksInfo = [];
$('#a, #b, #c').on('click', function(e){
// array: add, splice
if(jQuery.inArray($(this).attr('id'), clicksInfo) == -1){
clicksInfo.push($(this).attr('id'));
if(clicksInfo.length == 2){
// might do something
}else if(clicksInfo.length == 3){
clicksInfo.splice(0,1);
}
}else{
clicksInfo.splice(0,1);
clicksInfo.push($(this).attr('id'));
}
if($(this).attr('id') == 'a'){
// do stuff.
}else if($(this).attr('id') == 'b'){
// do stuff.
}else if($(this).attr('id') == 'c'){
// do stuff.
}
});
$(document).on('click', function(){
console.log('clicksInfo', clicksInfo);
// console.log('clicksInfo', clicksInfo);
});
最佳答案
字符串是字符串,数组是数组,即使在 console.log 中也是如此,所以在执行时:
console.log('clicksInfo', clicksInfo);
这是一个字符串,一个逗号,然后是一个数组?
尝试做:
console.log('clicksInfo : '+ clicksInfo);
要显示字符串表示形式,或将数组显示为对象,请不要将其与其他奇怪的东西混合在一起:
console.log(clicksInfo);
关于javascript - 数组值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901826/