【问题标题】:How to replace list indexes in Javascript?如何替换 Javascript 中的列表索引?
【发布时间】:2020-05-21 20:23:27
【问题描述】:

我在 Javascript 中有一个对象,它有一些条目,例如:

{tempmin = 5,
tempmax= 10
}

我想替换如下键:

.then(forecasts => {
                        this.foreCasts = forecasts.map(s => {
                            if (s.hasOwnProperty("tempmin")) {
                                s.tempmin = "Minimum Temperature"
                            }
                            if (s.hasOwnProperty("tempmax")) {
                                s.tempmax = "Maximum Temperature"
                            }
                        });

但我得到了错误:forecasts.map 不是函数

我检查了this,但它没有用。如何替换这些键?

【问题讨论】:

  • .map() 仅适用于数组。很可能forecasts 有另一种类型。
  • 您的对象文字格式不正确。
  • 甚至不清楚您要在这里做什么。 Javascript 没有列表数据结构。最接近的东西是一个数组,但您已经发布了一个对象(一个在语法上无效的对象)。你是什​​么意思“更换钥匙”?您的意思是创建一个具有不同键但值相同的新对象吗?
  • 是的@JaredSmith 这是一个对不起说列表的对象。正如你所说,我想更改这些值,我可以使用具有正确值的新对象
  • forecast 是一个对象吗?向我们展示该数据结构。

标签: javascript vue.js frontend


【解决方案1】:

解构 tempmin,tempmax。将它们合并为“Minimum...”

let forecasts = {
  tempmin: 5,
  tempmax: 10,
  blahblah: "x"
}

this.foreCasts = (({
  tempmin,
  tempmax,
  ...rest
}) => Object.assign(rest, {
  "Minimum Temperature": tempmin,
  "Maximum Temperature": tempmax
}))(forecasts);
console.log(this.foreCasts);

我更喜欢 Object.assign,但你也可以使用扩展语法{ ...rest, "Maximum Temperature": tempmin, "Maximum Temperature": tempmax }

【讨论】:

  • 忘记了起始括号
猜你喜欢
  • 2022-11-27
  • 2011-11-06
  • 2017-03-31
  • 2018-10-28
  • 2016-04-03
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
相关资源
最近更新 更多