首页 > 解决方案 > 将数字添加到有字符串的数组中会导致字符串而不是数字

问题描述

基本上,我正在尝试将数组键值从字符串转换为 JSON 对象中的数字:

form["price"] == "23"
console.log(typeof form["price"]) // string
form["price"] == Number(parseFloat(this.formObject[field.fieldName]))

我的问题是,这样做之后,这些是类型:

console.log(Number(parseFloat(this.formObject[field.fieldName]))) // number
console.log(form["price"]) // string, should be number

如何更改密钥类型?这给我的 DTO 后端验证带来了问题

标签: javascriptjson

解决方案


您需要将一个值等同但不进行比较。使用=代替==

const form = {};

form["price"] = "23";
console.log(typeof form["price"]); // string

form["price"] = Number(parseFloat("23")); // Number(parseFloat(this.formObject[field.fieldName]));
console.log(typeof form["price"]); // number


推荐阅读