javascript中浮点值的深度搜索和替换
我有一个嵌套对象,一些属性将浮点值作为字符串。我的目标是将这些字符串转换为数字格式。 下面是一个示例对象javascript中浮点值的深度搜索和替换,javascript,parsing,Javascript,Parsing,我有一个嵌套对象,一些属性将浮点值作为字符串。我的目标是将这些字符串转换为数字格式。 下面是一个示例对象 var myObj = { "value": "text", "params": { "check3": false, "check2obj": { "params": { "value3": 35, "value4": "0.05", "value5": "0.02", "value7":
var myObj = {
"value": "text",
"params": {
"check3": false,
"check2obj": {
"params": {
"value3": 35,
"value4": "0.05",
"value5": "0.02",
"value7": "hello",
"local": {
"value4": "263.03",
"value3": 35,
"value2": true,
"value1": "hello1"
}
}
}
}
}
解析后,我希望这个对象看起来像
{
"value": "text",
"params": {
"check3": false,
"check2obj": {
"params": {
"value3": 35,
"value4": 0.05,
"value5": 0.02,
"value7": "hello",
"local": {
"value4": 263.03,
"value3": 35,
"value2": true,
"value1": "hello1"
}
}
}
}
}
我已经用下面的函数尝试过了,但是字符串没有变为float
function parse(data){
$.each(data, function(key, value){
if(typeof(value)== 'object'){
parse(value);
}else{
if(typeof(value) == 'string' && !isNaN(parseFloat(value))){
value = parseFloat(value);
}
}
});
return data;
}
changedValues = parse(myObj);
您可以创建递归函数,通过嵌套对象属性进行迭代,然后使用
parseFloat
方法将值转换为float,并使用isNaN
方法检查其是否为float
const data={“value”:“text”,“params”:{“check3”:false,“check2obj”:{“params”:{“value3”:35,“value4”:“0.05”,“value5”:“0.02”,“value7”:“hello”,“local”:{“value4”:“263.03”,“value3”:35,“value2”:true,“value1”:“hello1”}}
函数解析(数据){
for(让我们输入数据){
const n=parseFloat(数据[键])
if(数据类型[key]=“object”)解析(数据[key]);
如果(n&&!isNaN(n))数据[键]=n;
}
}
解析(数据)
console.log(data)
这很简单,您尝试了什么?向我们展示您尝试了什么以及您研究了什么。Stackoverflow不是免费的代码编写服务。这里的目标是让人们帮助您修复代码,因为您正在返回输入参数。您需要对其应用更改,然后才能删除n&&
,但我不确定如何处理0