3
console.log()应该在JavaScript中调用变量时打印出变量的值吗?这是我的假设,但是当我在Firefox(使用Firebug)或Google Chrome(并使用内置的开发工具)中运行下面的代码时,我似乎得到了数组的“最终”值,而不是阵列。如果我使用alert()语句,它们会打印出我期望的内容 - alert()语句被调用时的数组值。JavaScript:console.log()给出的结果不同于alert()
var params = new Array();
var tmp = new Array('apple', 'banana', 'cat');
for (var i=0; i < tmp.length; i++) {
params[tmp[i]] = [];
}
console.log(params);
/*
SHOWS IN CONSOLE:
- []
+ apple ["jan", "feb", "mar", "apr"]
+ banana ["jan", "feb", "mar", "apr"]
+ apple ["jan", "feb", "mar", "apr"]
*/
alert(print_arr(params));
/*
ALERT BOX TEXT:
[apple]:
[banana]:
[cat]:
*/
console.log('===========================================');
var tmp2 = new Array('jan', 'feb', 'mar', 'apr');
for (var i=0; i < tmp.length; i++) {
for (var j=0; j < tmp2.length; j++) {
params[tmp[i]].push(tmp2[j]);
}
}
console.log(params);
/*
SHOWS IN CONSOLE:
- []
+ apple ["jan", "feb", "mar", "apr"]
+ banana ["jan", "feb", "mar", "apr"]
+ apple ["jan", "feb", "mar", "apr"]
*/
alert(print_arr(params));
/*
ALERT BOX TEXT:
[apple]:jan,feb,mar,apr
[banana]:jan,feb,mar,apr
[cat]:jan,feb,mar,apr
*/
function print_arr(arr) {
var str = '';
for (var k in arr) {
str += '[' + k + ']:' + arr[k].toString() + "\n";
}
return str;
}
控制台日志的对象,所以对对象所作的任何更改都将得到体现在记录objet – 2013-03-20 15:49:54
'console.log(JSON.stringify(yourObj));' - 试试。 – 2013-03-20 15:50:20
为什么你创建一个数组并填充属性而不是值?为什么不使用Object来代替? – newtover 2013-03-20 15:53:53