【发布时间】:2019-07-20 15:07:27
【问题描述】:
我正在尝试通过循环构建JSON 数组,其中input 类名和值将用作JSON obj 和键。但我无法创建一个,也找不到有关如何创建一个的信息。我在下面给出了一个示例,我需要在注释行中提供帮助,我希望console.log(json_array); 返回{"class_1":"val_1", "class_2":"val_2", "class_3":"val_3", "class_4":"val_4", "class_5":"val_5"}。我怎样才能像这样生成JSON 数组?甚至可以通过这种方法制作一个JSON 数组吗?
document.querySelector("button").onclick = function() {
var json_array = [];
document.querySelectorAll("div input").forEach(x => {
json_array.push(x.className.toString() : x.value.toString()); // DOESN'T WORK
});
console.log(json_array);
};
<html>
<head>
<meta charset="UTF-8">
<title>TEST</title>
</head>
<body>
<div>
<input type="text" class="class_1" value="val_1">
<input type="text" class="class_2" value="val_2">
<input type="text" class="class_3" value="val_3">
<input type="text" class="class_4" value="val_4">
<input type="text" class="class_5" value="val_5">
</div>
<button>BUILD</button>
</body>
</html>
【问题讨论】:
-
您想要的
{"class_1", "val_1", "class_2",输出是无效的语法。对象需要键值对。数组与对象不同。如果你想要一个数组(只有值,没有键值对),使用数组而不是对象。 -
只需将
:更改为逗号即可将多个项目推送到单个.push中的数组中 -
我想人们想说的是你想将一个对象推入数组中,你会这样做:
json_array.push({ name: x.className.toString(), value: x.value.toString() });
标签: javascript html arrays json object