使用vue.js同时遍历多个列表

时间:2018-10-08 12:21:18

标签: javascript vue.js

是否可以使用JavaScript同时遍历多个列表?我之所以专注于vue.js的原因是,如果可能的话,我会在HTML标签内使用它。

listA = ('itemA1', 'itemA2');
listB = ('itemB1', 'itemB2');

<div v-for="A in listA" v-for="B in listB">
   <span>A value is: @{{A}}</span>
   <span>B value is: @{{B}}</span>
</div>

编辑:

简要说明我将如何使用它。这个问题实际上与我已经问过before的问题有关。 因为我要创建具有两列的表,其中第一列将包含表的标题,第二列将包含数据,所以我需要某种方式使它们位于同一行中。现在,如果您检查了我已链接的问题,那么您应该找到那些表的外观。但是,当我在某些td标签中将数据划分为更多行时,我遇到了一个问题。例如:

+---------+-------------+
| Name    | Christopher |
| Middle    Christy     |
| Surname | Ashton      |
|         | Kutcher     |
| ------- | ----------- |

我需要将其显示为:

+---------+-------------+
| Name    | Christopher |
|           Christy     |
| Middle  | Ashton      |
| Surname | Kutcher     |
| ------- | ----------- |

4 个答案:

答案 0 :(得分:2)

您可以为此使用computed properties

例如

listA = ['itemA1', 'itemA2'];
listB = ['itemB1', 'itemB2'];

// add a computed property that merges the 2 arrays into a single array of objects
{
  computed: {
    list() {
      return listA.map((itm, i) => {
        return { A: itm, B: listB[i] }
      })
    }
  }
}

<div v-for="obj in list">
   <span>A value is: @{{obj.A}}</span>
   <span>B value is: @{{obj.B}}</span>
</div>

请注意,这是未经测试的代码,也不安全,您应该检查listB是否具有该索引,例如如果listA包含5个项目,而listB包含4个项目,则会出现错误。

答案 1 :(得分:1)

这应该有效

<div v-for="(A, index) in listA>
    <span>A value is: @{{A}}</span>
    <span v-if="listB[index]'>B value is: @{{listB[index]}}</span>
</div>

答案 2 :(得分:0)

请尝试以下代码

<div>
 <span v-for="A in listA" >A value is: @{{A}}</span>
 <span v-for="B in listB" >B value is: @{{B}}</span>
</div>

答案 3 :(得分:0)

对我有用! :)

我有两个元素数量相同的数组。

<div
      v-bind:key="index"
      v-for="(example, answer, index) in currentQuestion.examples"
    >
      <div class="row">
        <div class="col-md-6">
          <p>
            <button class="btn btn-secondary btn-lg btn-block">
              {{ example }}
            </button>
          </p>
        </div>
        <div class="col-md-6">
          <p>
            <button class="btn btn-secondary btn-lg btn-block">
              {{ currentQuestion.answers[index + 1] }}
            </button>
          </p>
        </div>
      </div>
    </div>