Javascript 将对象项乘以某个随机值并作为对象返回

Javascript 将对象项乘以某个随机值并作为对象返回,javascript,Javascript,我有一个包含如下对象的数组: [ { current_temperature: "16.75°C" name: "London" } ... ] 我需要将当前温度乘以某个值,并以与上面相同的格式返回 我试着像下面一样,但它不工作 this.data.map(item => { let temp = item['current_temperature']; Object.assign(this.data, {'current_temperature'

我有一个包含如下对象的数组:

[
  {
    current_temperature: "16.75°C"
    name: "London"
  }
  ...
]
我需要将当前温度乘以某个值,并以与上面相同的格式返回

我试着像下面一样,但它不工作

this.data.map(item => {
   let temp = item['current_temperature'];
   Object.assign(this.data, {'current_temperature': temp.split('\u00B0')[0] * 32});
});
试试这个:

const数据=[
{
当前温度:“16.75℃,
姓名:“伦敦”
},
{
当前温度:“10.75℃,
名称:“突尼斯”
}
]
const result=(multip)=>data.map(res=>Object.assign({},res,{current_temperature:res.current_temperature.split('\u00B0')[0]*multip+'°C'));
console.log(结果(10))//乘以10

console.log(result(32))//乘以32假设要将输入数据转换为包含更新温度数据的新数组对象,则可以使用
map()
回调函数:

  • 通过spread操作符克隆每个映射的
    项目
  • 当前温度
    字段传递到
    Number.parseFloat()
    ,将结果相乘,然后将其重新格式化为原始温度字符串格式
  • 这种方法利用了
    Number.parseFloat()
    的行为,输入字符串将解析与有效浮点数对应的字符串的第一个字符。如果输入字符串以“数字字符”开头,我们可以利用
    Number.parseFloat()
    的内置行为来简化解决方案:

    const输入=[{
    当前温度:“16.75℃,
    姓名:“伦敦”
    },
    {
    当前温度:“12.00°C”,
    名称:“奥克兰”
    }
    ]
    const output=input.map(item=>({…item,
    /*解析当前温度的第一个浮动部分,乘以32,
    格式化为字符串*/
    当前温度:`${(Number.parseFloat(item.current_temperature)*32).固定温度(2)}`
    }));
    
    console.log(输出)
    您希望分配给
    项,而不是
    此.data
    (这是一个数组),并且您可能希望读取°CI,希望我的最终输出(内部温度)乘以32。是的,我还必须添加:)注意您也不需要
    map
    ,假设您想要更改原始对象(听起来像是这样),那么您使用的括号符号是错误的。在这种情况下,它应该是点符号。因此,
    item.current_temperature
    @Kevin.a在这种情况下它实际上是不相关的,据我所知,它在这两种情况下都会起作用。为什么我得到的属性“map”在类型“{}”上不存在。我正在使用vscode。map下面有一条红线,当我在上面悬停时,我得到了那个错误。听起来像是你在调用
    {}
    对象上的
    map()
    ,而不是数组
    []
    -你能再包含一些代码吗?const records=this.data;const output=records.map(item=>({…item,当前_温度:
    ${(Number.parseFloat(item.current_温度)*32).toFixed(2)}摄氏度
    });这个数据=输出;我的数据格式与您的数据格式相同。请将此数据添加到
    records.map(…)
    之前,并告诉我控制台记录了什么
    console.log('this.data是数组:',array.isArray(this.data))
    this.data是数组:true