Javascript 将对象推送到数组中
Javascript pushing objects into array
var cb = [];
for (var i = 0; i < 10; i++) {
cb.push({
'test': 'value'
});
console.log(cb);
};
我期待得到:[{test: value}, {test: value}, ... , {test: value}]
我最终得到的是每个日志语句的最终结果:
[对象]
[对象,对象]
[对象,对象,对象]
[对象,对象,对象,对象]
[对象、对象、对象、对象、对象]
[对象、对象、对象、对象、对象]
[对象、对象、对象、对象、对象、
..........
当我扩展这些数组中的任何一个时,它们都有相同的结果。例如,第一个数组包含:
[{test: value}, {test: value}, ... , {test: value}]
哪个是最终值,它不应该只有 1 个对象吗?最终结果是我所期望的,但我只是对为什么在第一次推送后数组有 10 个元素感到困惑。有人可以解释一下发生了什么吗?
你需要序列化你的输出。尝试:
var cb = [];
for (var i = 0; i < 10; i++) {
cb.push({
'test': 'value'
});
console.log(JSON.stringify(cb));
};
您正在记录数组对象,而不是对象的任何方面。输出是正确的,数组也是如此。你只需要更具体。如果在控制台.log行所在的代码中设置断点,您将看到数组正在正确填充。
而且,如果您不想在构建对象时查看对象的状态,只需将日志移到循环之外即可。
正在做cb[test]="value"
(或者可能是cb[myObject]="value"
?我不确定你想要什么)会返回你所期望的:一个数组,其唯一的键测试(或 myObject)包含定义的值。
当使用 push 时,您不是将数组用作关联数组(键 = 值),而是用作索引数组(索引 = 值),推送的合约是使用下一个可用索引添加到数组的末尾。
所以现在cb[0]
{test: "value"}
,其他人cb[1]
cb[9]
也是如此。
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象