NodeJS 如何将数组数据转换为对象数据

tyu7yeag  于 2023-01-04  发布在  Node.js
关注(0)|答案(1)|浏览(291)

我有一个表单,可以同时获取不同人的信息。但是,当我需要将表单“行”分组到同一对象而不是不同的数组时,它将类似的输入/选项分组到一个数组中
这是从:

<form action="/entry" method="post" class="form-main" id="entry-form">

        <div class="bg-colour">
            <input type="text" class="entry-form" value="random number">
            <input type="text" name="participantName" class="entry-form" placeholder="Name">
            <input type="text" name="participantSurname" class="entry-form" placeholder="Surname">
            <select name="participantGrade" class="entry-form">
                <option value="Grade 1">Grade 1</option>
                <option value="Grade 2">Grade 2</option>
                <option value="Grade 3">Grade 3</option>
                <option value="Grade 4">Grade 4</option>
                <option value="Grade 5">Grade 5</option>
                <option value="Grade 6">Grade 6</option>
                <option value="Grade 7">Grade 7</option>
                <option value="Grade 8">Grade 8</option>
                <option value="Grade 9">Grade 9</option>
                <option value="Grade 10">Grade 10</option>
                <option value="Grade 11">Grade 11</option>
                <option value="Grade 12">Grade 12</option>
            </select>
            <input type="text" name="participantSchool" class="entry-form" placeholder="School">
            <input type="email" name="participantEmail" class="entry-form" placeholder="Email">
            <input type="text" name="participantNumber" class="entry-form" placeholder="Number">
            <button class="remove">-</button>
        </div>
    </form>
    <button type="submit" class="entry-form-button" form="entry-form">Continue</button>
    <button id="add-row">+</button>

add-row按钮生成一整行.bg-colour div中的所有内容。下面是用于此操作的JavaScript代码:

function colorMode() {
    var element = document.body;
    element.classList.toggle("dark-mode");
}

但是,每当数据提交时,它都会将它们排序在一个数组中,如下所示:

{   pName: [ 'Name1', 'Name2', 'Name3' ],   
    pSurname: [ 'Surname1', 'Surname2', 'Surname3' ],   
    pGrade: [ 'Grade 1', 'Grade 2', 'Grade 3' ],   
    School: [ 'School1', 'School2', 'School3' ],   
    pNumber: [ '1', '2', '3' ] }

正如你所看到的,它把所有的名字排序在一起,所有的姓氏,等等。我希望它把每一项排序在一个对象中。下面是当前的nodejs代码(没有我的混乱):

app.post('/entry', function (req, res) {

    const pName = req.body.participantName;
    const pSurname = req.body.participantSurname;
    const pGrade = req.body.participantGrade;
    const pSchool = req.body.participantSchool;
    const pNumber = req.body.participantNumber;

    console.log({
        pName,
        pSurname,
        pGrade,
        pSchool,
        pNumber
    });

res.redirect('/entry');
});

如有任何帮助,将不胜感激。

zzwlnbp8

zzwlnbp81#

如果你想要一个好的答案,我建议你更新你的问题。
1.更正标题-将"JsvaScript"更改为"JavaScript"

  1. Fix your html so all your html tags are lower case. < Option > should be < option >
    1.把你的问题简化成只说如何从选项中获取数据,放入数组中,或者更好的是,如何简单地将一种数组格式转换成另一种。
    1.从表单中获取所有数据的一种有用方法:
const myArray = form.elements;

奖金:
您可以使用此命令来帮助提取数据:
x一个一个一个一个x一个一个二个x

相关问题