我正在尝试一些输入来在Sails / nodeJS中将数据作为数组获取;
当我尝试这种方式然后将数据完美地获取数组。
<input type="text" class="form-control" name="answer[1][txt]">
<input type="text" class="form-control" name="answer[1][img]">
<input type="text" class="form-control" name="answer[2][txt]">
<input type="text" class="form-control" name="answer[2][img]">
输出:
answer:[ { txt: 'ans 1', img: 'yes' }, { txt: 'ans 2', img: 'yes' } ]
但是当我在表单中使用enctype(enctype =“multipart / form-data”)属性时,则无法像以前的方法那样获取数据。 输出:
'answer[0][txt]': 'ans 1', 'answer[0][img]': 'yes',
'answer[1][txt]': 'ans 2','answer[1][img]': 'yes',
我不知道使用enctype属性时发生了什么。我只想使用enctype(multipart / form-data)属性返回第一个输出数据。 谢谢
答案 0 :(得分:0)
您可以从当前返回的对象创建一个新对象;使用for..in
循环来迭代对象,匹配属性的"txt"
或"img"
部分,将值设置为现有对象的值
let data = {
'answer[0][txt]': 'ans 1',
'answer[0][img]': 'yes',
'answer[1][txt]': 'ans 2',
'answer[1][img]': 'yes'
};
let res = {
answer: []
};
for (let prop in data) {
res.answer.push({
[prop.match(/txt|img/)[0]]: data[prop]
})
}
console.log(res);