在vuejs或javascript中使用带有此关键字的字符串

时间:2018-03-16 20:46:16

标签: javascript vue.js frontend

我的代码是这样的。

  new Vue({
  el:'#app',
  data:{
    cars:[
      {
        name:'',
        make:''
      }
    ]
  },
  methods:{
    addToArray(nameOfTheArray){ //here nameOfTheArray is the string "cars"
      //so here I have to do something like this
      this.cars.push({
         name:'',
        make:''
      })
 }
  }
})

我的问题是我可以使用该参数(nameOfTheArray)来告诉我要在哪个数组中推送此对象。  我的意思是这样的?

 this.nameOfTheArray.push({
         name:'',
        make:''
      })

但这不起作用。有没有办法使用这个字符串参数与这个关键字??

2 个答案:

答案 0 :(得分:1)

使用它:

JComponent

答案 1 :(得分:1)

您可以通过obj [key]访问对象属性,还可以检查对象中是否存在密钥以避免运行时错误

 new Vue({
  el:'#example',
  data:{
    cars:[
      {
        name:'',
        make:''
      }
    ]
  },
  methods:{
    addToArray(nameOfTheArray){
      if (nameOfTheArray in this) {
        this[nameOfTheArray].push({
         name: 'default name',
         make: 'default make'
        })
      } else {
        alert('Invalid key!')
      }
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.15/vue.js"></script>

<div id="example">
  <button type="button" @click="addToArray('cars')">Add to cars</button>
  <button type="button" @click="addToArray('invalidKey')">Add invalidKey</button>
  
  {{ cars }}
</div>