我正在循环通过单选按钮以将其值添加到javascript对象。当我执行console.log时,我只看到最后一个项目是“对象的一部分”,而不是整个对象。
我在做什么错了?
var steps = {};
var elements = document.getElementsByTagName("input");
for(var i = 0; i<elements.length; i++) {
if(elements[i].type === "radio")
{
Object.assign(steps, {name: elements[i].value});
}
}
console.log(steps);
答案 0 :(得分:1)
您正在循环执行以下操作
Object.assign(steps,{name:elements [i] .value});
这基本上是在键 name 中添加值 elements [i] .value 。
Object.assign()方法用于将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
您需要将步骤转换为数组,然后按其中的所有键。另外,您可以更改 name 键,使其唯一,尽管最好将其转换为数组。
对于数组,您需要执行以下操作
var steps = [];
var elements = document.getElementsByTagName("input");
for (var i = 0; i < elements.length; i++) {
if (elements[i].type === "radio") {
steps.push({ name: elements[i].value });
}
}
console.log(steps);