Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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
Javascript将对象推送到数组中_Javascript - Fatal编程技术网

Javascript将对象推送到数组中

Javascript将对象推送到数组中,javascript,Javascript,哪一个是最终值,它不应该只有一个对象吗? 最终的结果是我所期望的,但我只是不明白为什么在第一次推送之后,数组有10个元素。 有人能解释一下发生了什么事吗 您正在记录数组对象,而不是对象的任何方面。输出是正确的,数组也是正确的。你只需要更具体一点。如果在console.log行所在的代码中设置断点,您将看到数组已正确填充 而且,如果您不想在构建对象时看到对象的状态,只需将日志移到循环之外。执行cb[test]=“value”(或者cb[myObject]=“value”?我不确定您想要什么)将返回

哪一个是最终值,它不应该只有一个对象吗? 最终的结果是我所期望的,但我只是不明白为什么在第一次推送之后,数组有10个元素。
有人能解释一下发生了什么事吗

您正在记录数组对象,而不是对象的任何方面。输出是正确的,数组也是正确的。你只需要更具体一点。如果在console.log行所在的代码中设置断点,您将看到数组已正确填充

而且,如果您不想在构建对象时看到对象的状态,只需将日志移到循环之外。

执行
cb[test]=“value”
(或者
cb[myObject]=“value”
?我不确定您想要什么)将返回您期望的结果:一个数组,其唯一的键测试(或myObject)包含定义的值

如果改用push,则该数组不是用作关联数组(key=value),而是用作索引数组(index=value),push的约定是使用下一个可用索引添加到数组末尾。

因此,现在
cb[0]
{test:“value”}
,其他
cb[1]
cb[9]
也是
。尝试:

[{test: value}, {test: value}, ... , {test: value}] 
var cb=[];
对于(变量i=0;i<10;i++){
推({
“测试”:“值”
});
log(JSON.stringify(cb));
};

console.log
显示了
cb
现在的状态,而不是在它被记录时的状态。可能的重复:尝试执行
console.log(JSON.stringify(cb))
,您将看到@Siguza在说什么。甚至
console.log(cb.length)
都会显示长度正确增加。在记录数组/对象时,日志不会显示其确切状态。
[{test: value}, {test: value}, ... , {test: value}] 
var cb = [];
for (var i = 0; i < 10; i++) {
    cb.push({
        'test': 'value'
    });
    console.log(JSON.stringify(cb));
};