Как использовать v-for для рендеринга таблицы с помощью vue.js

У меня есть массив, который выглядит так:

sales = [
 [{'Year': 2018, 'Month': 01, 'Sale'; 512}, {'Year': 2018, 'Month': 02, 'Sale'; 1025}, ....],
 [{'Year': 2017, 'Month': 01, 'Sale'; 155}, {'Year': 2017, 'Month': 02, 'Sale'; 12}, ....]
]

я хотел бы показать это в таблице, используя vue:

<table class="table table-striped">
  <thead>
    <tr>
      <th>#</th>
      <th>2018</th>
      <th>2017</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="(sale,i) in sales" :key="i">
       <th scope="row">{{ ??? }}</th> //Month
       <td>{{ ??? }}</td> //currentYear.Sale
       <td>{{ ??? }}</td> //previousYear.Sale
    </tr>
   </tbody>
</table>

к сожалению, я не знаю, как выполнить итерацию по моему массиву продаж, чтобы показать в каждой строке таблицы продажу текущего и предыдущего года.


person Greg Ostry    schedule 22.08.2018    source источник
comment
Пожалуйста, обратитесь к следующей ссылке документации vue, она четко объяснена vuejs.org/v2/guide/   -  person Amitesh Bharti    schedule 22.08.2018


Ответы (1)


<div id="app">
  <table class="table table-striped">
  <thead>
    <tr>
      <th>#</th>
      <th>2018</th>
      <th>2017</th>
    </tr>
  </thead>
  <tbody>
    <tr v-for="(sale,i) in sales[0]" :key="i">
       <th scope="row">{{ sale.Month  }}</th>  
       <td>{{ sale.Sale }}</td> 
       <td>{{ sales[1][i].Sale }}</td>  
    </tr>
   </tbody>
</table>
</div>

new Vue({
  el: "#app",
  data: {
    sales: [
        [{'Year': 2018, 'Month': 01, 'Sale': 512}, {'Year': 2018, 'Month': 02, 'Sale': 1025}],
            [{'Year': 2017, 'Month': 01, 'Sale': 155}, {'Year': 2017, 'Month': 02, 'Sale': 12}]
    ]
  } 
})

пример https://jsfiddle.net/mcqwtdgr/

person Vladimir Proskurin    schedule 22.08.2018
comment
мне нужно в данных моей таблицы элемент продажи, а не год. - person Greg Ostry; 22.08.2018
comment
я изменил ответ - person Vladimir Proskurin; 22.08.2018