Javascript 对象序列化类似于表单数据序列化

Javascript 对象序列化类似于表单数据序列化,javascript,jquery,Javascript,Jquery,我不确定我是否遗漏了什么,或者是它没有像我想的那样工作。我有一些要拆分的表单数据。为此,我想我可以创建另一个对象,其值如下: let data = $('form').serializeArray(); let answers = {}; data.forEach(function(element) { // check if the element contains a answer input value if(element.name.indexOf('answer') !

我不确定我是否遗漏了什么,或者是它没有像我想的那样工作。我有一些要拆分的表单数据。为此,我想我可以创建另一个对象,其值如下:

let data = $('form').serializeArray();
let answers = {};
data.forEach(function(element) {
    // check if the element contains a answer input value
    if(element.name.indexOf('answer') !== -1) {
        answers[element.name] = element.value;
    }
});

console.log($('form').serialize()); 
// output:  answer%5B1%5D=1&answer%5B2%5D=2&answer%5B4%5D=3&answer%5B3%5D=4&sort=relevance&query=&area=..... etc
console.log(answers.serialize());   
// output: is not a function.
再说一遍。我认为可以将对象序列化为字符串以用于数据存储,就像我处理表单数据一样


有人能给我解释一下我做错了什么和/或为什么序列化不起作用吗?

answers
不是jQuery对象,所以它没有
serialize()
方法。若您想要获得一个名值对字符串,就像jQuery的序列化一样,那个么您可以使用

答案={
“答案1”:1,
“回答2”:2
};
log(jQuery.param(answers))

可能重复@PatrickEvans,只需将其转换为json字符串,而不像序列化那样转换为url参数字符串。但是有人回答我的问题,泰透!