Привет, я новичок во Vue, и для этого проекта я пытался добавить данные внутри массива с помощью .push(). Когда я помещаю данные в totalPlayers, предполагается, что данные будут получены как totalPlayers[{data:[0,1,2,3]}], но в настоящее время данные сохраняются как totalPlayers[{data: [] }, 0, 1, 2, 3]. Есть ли способ исправить это? Вот мой код ниже

JsFiddle = https://jsfiddle.net/ujjumaki/xv2homt8/24/

Метод

new Vue({
  el: "#app",
  data: {
    totalPlayers:[{
     data:[],
    }],
    playerList:4,
  },
  methods: {
    buttonClicked(){
        for (var i = 0; i < this.playerList; i++) {
        console.log('i was '+i);
        this.totalPlayers.push(i);
        console.log(this.totalPlayers);
      }
    }
  }
})

Просмотр

<div id="app">
  <button @click="buttonClicked()">
    Click Me
  </button>
</div>
1
Yahoo 9 Окт 2021 в 23:33

2 ответа

Лучший ответ

data - это массив в первом элементе массива totalPlayers, поэтому попробуйте totalPlayers[0].data.push:

new Vue({
  el: "#app",
  data: {
    totalPlayers:[{
     data:[],
    }],
    playerList:4,
  },
  methods: {
    buttonClicked(){
        for (var i = 0; i < this.playerList; i++) {
        console.log('i was '+i);
        this.totalPlayers[0].data.push(i);
        console.log(this.totalPlayers);
      }
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <button @click="buttonClicked()">
    Click Me
  </button>
</div>
1
Nikola Pavicevic 9 Окт 2021 в 20:39

Просто используйте это, чтобы нажать: this.totalPlayers[0].data.push(i); поскольку totalPlayers - это массив, и вы хотите добавить к нему первый элемент, который является объектом jsfiddle

-2
Gabriel 9 Окт 2021 в 20:40