Javascript中的空对象

Javascript中的空对象,javascript,object,Javascript,Object,我有一个奇怪的情况 我从表单中获取一些值并将其保存在对象中 我打印出这些值,它会很好地打印到控制台日志中。但当我尝试访问它或在下一行再次打印时。它返回为空 这是代码 var family = {}; var counter = []; counter = document.querySelectorAll(".familyMemberBox input[name='member[]']"); for(x=0;x<counter.length;x++){

我有一个奇怪的情况

我从表单中获取一些值并将其保存在对象中

我打印出这些值,它会很好地打印到控制台日志中。但当我尝试访问它或在下一行再次打印时。它返回为空

这是代码

 var family = {};
    var counter = [];

    counter = document.querySelectorAll(".familyMemberBox input[name='member[]']");

    for(x=0;x<counter.length;x++){
                console.log('for loop');
                family[x] = {};

                member_number = counter[x].value;
                member_type = get_member_type(member_number);
                gender = get_gender(member_number);
                age = get_age(member_number);

                family[x]['type'] = member_type;
                family[x]['Gender'] = gender;
                family[x]['Age'] = age;
    }

    for(x=0;x<counter.length;x++){
        console.log(family[x]);
    }

            console.log('family: '+family[0]);
var-family={};
var计数器=[];
计数器=document.querySelectorAll(“.familyMemberBox输入[name='member[]']”);

对于(x=0;x这一行:
console.log('family:'+family[0]);
在打印前将
family[0]
强制为字符串。这并不意味着对象为空

请尝试以下方法:

console.log('family: ');
console.log(family[0]);

您使用以下语句将其设置为字符串:
console.log('family:'+family[0]);

当使用普通对象压缩字符串时,您隐式调用的是
.toString()
。对象的字符串版本是
[object object]
。它不是空的,不用担心

如果要显示对象的字符串版本,可能需要循环并打印每个键和值对,但这可能效率不高。如果您一心想将
系列
打印到控制台,请使用逗号:

console.log('family: ', family[0]); // should show two individual statements, not just one coerced string

console.log(family[x]);
正在记录对象。
console.log('family:'+family[0]);
正在记录对象的字符串表示形式,即(除非覆盖它)“[object object]”它只是控制台格式。请尝试:
console.log('family:');console.log(family[0])
那不是空对象,只是对象的字符串。请尝试
控制台.log(“家族”,家族[0])
而不是
控制台.log('family:',家族[0]);
而不是
控制台.log('family:'+family[0])
这一条可能会解释:哇,似乎是新手犯的错误。谢谢你的详细回答。我将在循环中使用它。这只是为了测试我是否正确地读取了值。