You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON对象数组中的字符串属性值通过parseFloat转换为数值并生成新数组?已尝试实现但未成功

我来帮你搞定这个问题!你的代码里有几个小问题导致转换没成功,我给你拆解一下,然后给出修复后的方案~

你代码里的核心问题

  1. 用到的res变量完全没定义,赋值时肯定会报错,这是最直接的原因;
  2. 没有为每个原JSON对象创建对应的新对象,直接操作不存在的变量当然行不通;
  3. 用for...in遍历数组虽然能跑,但数组更推荐用for...of或者Array.map(),写法更清晰也更安全。

解决方案1:只转换指定属性(最符合你“部分属性转换”的需求)

如果你只想把cost和discount转成数值,其他属性保留原样,可以这么写:

const originalJson = [{ "id" : "0", "msg" : "hi", "cost" : "250.24", "discount": "10" }, { "id" : "1", "msg" : "there", "cost" : "45.00", "discount": "0" }];
const convertedJson = originalJson.map(item => {
  // 先复制原对象的所有属性,避免修改原数据
  const newItem = {...item};
  // 针对性转换指定属性
  newItem.cost = parseFloat(newItem.cost);
  newItem.discount = parseFloat(newItem.discount);
  // 要是担心转换失败(比如属性值不是合法数字),可以加个判断兜底:
  // newItem.cost = !isNaN(parseFloat(newItem.cost)) ? parseFloat(newItem.cost) : newItem.cost;
  return newItem;
});

console.log(convertedJson);

解决方案2:自动转换所有可转成数值的属性

如果想让所有能转成数字的字符串属性自动转成数值,其他属性保留字符串,可以用这个写法:

const originalJson = [{ "id" : "0", "msg" : "hi", "cost" : "250.24", "discount": "10" }, { "id" : "1", "msg" : "there", "cost" : "45.00", "discount": "0" }];
const convertedJson = originalJson.map(item => {
  const newItem = {};
  for (const prop in item) {
    if (item.hasOwnProperty(prop)) {
      const parsedValue = parseFloat(item[prop]);
      newItem[prop] = isNaN(parsedValue) ? item[prop] : parsedValue;
    }
  }
  return newItem;
});

console.log(convertedJson);

你的原始代码修复版

要是你想保留自己原来的循环逻辑,修复后的代码是这样的:

var json = [{ "id" : "0", "msg" : "hi", "cost" : "250.24", "discount": "10" }, { "id" : "1", "msg" : "there", "cost" : "45.00", "discount": "0" }];
var json1 = [];
// 用普通for循环遍历数组更稳妥
for (let i = 0; i < json.length; i++) {
  // 为每个原对象创建新的对象副本
  const newObj = {...json[i]};
  for (const prop in newObj) {
    const parsed = parseFloat(newObj[prop]);
    newObj[prop] = isNaN(parsed) ? newObj[prop] : parsed;
  }
  // 将处理好的新对象推入新数组
  json1.push(newObj);
}

console.log(json1);

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:37:42