我正在循环使用单选按钮以将它们的值添加到JavaScript对象中。当我做控制台时.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);
您正在循环中执行以下操作
Object.assign(steps, {name: elements[i].value});
这基本上是添加一个带有值元素[i].value的键名称。
Object.assign() 方法用于将所有可枚举自己的属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
您需要将步骤转换为数组,然后推送其中的所有键。或者,您可以更改名称键并使其唯一,尽管最好将其转换为数组。
对于数组,您需要执行以下操作
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);