Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数返回[object]javascript_Javascript_Arrays_Hash_Hashtable - Fatal编程技术网

函数返回[object]javascript

函数返回[object]javascript,javascript,arrays,hash,hashtable,Javascript,Arrays,Hash,Hashtable,我的代码有以下子部分: var t = { "a" : "coucou", "b" : "salut", "c" : [1, 2, 3], "sous" : { "foo" : "bar", "spam" : [ 1,2, {"egg" : "42"}]} }; for ( k in t) { console.log(k + ’ : ’ + t[k]) ; } 我真的不明白为什么“spam”键的结果是[object] a :

我的代码有以下子部分:

var t = {
   "a" : "coucou",
   "b" : "salut",
   "c" : [1, 2, 3],
   "sous" : {
    "foo" : "bar",
    "spam" : [ 1,2, {"egg" : "42"}]}
   };

   for ( k in t) {
    console.log(k + ’ : ’ + t[k]) ;
   }
我真的不明白为什么“spam”键的结果是[object]

a : coucou
b : salut
c : 1,2,3
sous : [object Object]
有人能给我解释一下吗?

控制台中使用逗号(,)。log
而不是连接运算符
+

var t={
“a”:“coucou”,
“b”:“敬礼”,
“c”:[1,2,3],
“苏”:{
“foo”:“bar”,
“垃圾邮件”:[1,2,{“鸡蛋”:“42”}]}
};
for(k in t){
log(k+':',t[k]);

}
编写表达式
k+':'+t[k]
时,
+
运算符将用作串联运算符。它将强制右侧的操作数转换为字符串。对于对象,这意味着调用它们的
.toString()
方法,默认情况下,该方法只返回
[object object]

更多信息请点击此处:


因为
sous
是一个object,所以您要连接字符串和object。使用
来控制两个变量,比如
console.log(k,t[k])谢谢!!!如果我使用逗号(,),垃圾邮件的输出是什么?@Jamin它在上面的代码片段中