【问题标题】:Changing values of object with integers as keys not working使用整数作为键更改对象的值不起作用
【发布时间】:2020-09-21 07:41:49
【问题描述】:

我有一个以数字为键的对象。

item:{
   1:'test 1'
   2:'test 2'
   3:'test 3'
}

对象是自动生成的,因此键并不总是相同的。所以在我的方法中,我将键作为字符串(例如:'1')传递,更改后的值如下:

function changeValues(key,value){
   this.item[key] = value
}

出于某种原因,这不会更改我的数据,但如果我这样做,它会完全正常。

function changeValues(key,value){
   this.item['1'] = value
}

这种行为是否有原因,是否有办法修复它以便我可以使用动态属性名称?

【问题讨论】:

  • this.item 长什么样子
  • this.item 看起来像第一个代码块中的项目对象。 @Ifaruki
  • 你能把这个组件放在codepen或类似的东西里吗?我无法重现问题。
  • 我也无法重现问题,它对我来说很好
  • 我的猜测是你没有传递正确的或任何参数给函数,也许你也用 F12 打开你的控制台,也许你有一个错误导致你的 vue 应用程序停止

标签: vue.js vuejs2


【解决方案1】:

您不能将整数值用作对象中的键。它将被转换为字符串值。有关类似问题,请参阅 this answer

至于通过常量字符串键或通过变量键访问值没有区别。 试试这个代码:

var a = { 1: 'test1', 2: 'test2' }
var b = '1'
console.log(a['1']  === a[b])

【讨论】:

    猜你喜欢
    • 2013-12-03
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多