gpt4 book ai didi

javascript - form.serializeArray() 将每个元素转换成字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:46:10 24 4
gpt4 key购买 nike

尝试 form.serializeArray() 并将序列化数据传递给服务器。

问题:该方法还将 bool 值和整数转换为字符串。而在服务端的基础上
value ,我正在尝试获取数据类型,因为它每次都会给我 String。

实际输出: [对象 { name="para1", value="1"}, 对象 { name="para2", value="2"}, 对象 { name="para3", value="true"}, 对象{ name="para4", value="rep1"}]

要求的输出:

[Object { name="para1", value=1}, Object { name="para2", value=2}, Object { name="para3", value=true}, Object { name="para4", value="rep1"}]

请为此提出解决方案。

最佳答案

您可以处理每个对象的 value 字符串并创建一个包含转换值的新数组。例如,字符串 truefalse 将被转换为它们各自的 bool 值,而数字将被转换为整数。请注意,我下面的示例非常简单,并没有涵盖所有可能性( float 也被转换为整数)。

编辑:正如@sanfor 在评论中指出的那样,每个包含整数的字符串都被转换为整数值,尽管像 "123" 这样的字符串也可以被处理作为字符串。然而,鉴于问题中输入类型未知的信息,此方法提供了预期的结果。

JSFiddle (打开控制台查看输出):

var values = [
{
name: 'para1',
value: '1'
},
{
name: 'para2',
value: 'true'
},
{
name: 'para3',
value: 'this is a string'
}
];

var result = values.map(function(obj) {
var value;

if (obj.value === 'true') {
value = true;
} else if (obj.value === 'false') {
value = false;
} else if (!isNaN(obj.value)) {
value = parseInt(obj.value);
} else {
value = obj.value;
}

return {
name: obj.name,
value: value
};
});

console.log(result);

关于javascript - form.serializeArray() 将每个元素转换成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27819851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com