javascript - 将数字添加到有字符串的数组中会导致字符串而不是数字
问题描述
基本上,我正在尝试将数组键值从字符串转换为 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 后端验证带来了问题
解决方案
您需要将一个值等同但不进行比较。使用=
代替==
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
推荐阅读
- azure-data-explorer - 如何检查给定数据库中所有表的表级策略(例如缓存)?
- html - Shopify Liquid:连续 for 循环无序迭代
- docker - Docker 不会将文件复制到创建的目录
- java - 如何在 java 条件语句中使用 or ,例如 if (a or b != c)
- javascript - Javascript `await` "SyntaxError: Unexpted identifier" 即使我在 `async` 函数中等待
- r - 如何从协方差矩阵中获取唯一对?
- puppeteer - 通过句柄循环获取内部元素文本
- php - 如何修复“将元素添加到数组而不是替换它”?
- javascript - $.getJSON 适用于本地主机但不适用于远程服务器
- jquery - 使用带有 AMCharts 4 饼图的 Jquery UI 滑块