Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 如何在嵌套数组(数组中的数组)上使用v-for指令进行迭代_Vue.js_Vue Component_V For - Fatal编程技术网

Vue.js 如何在嵌套数组(数组中的数组)上使用v-for指令进行迭代

Vue.js 如何在嵌套数组(数组中的数组)上使用v-for指令进行迭代,vue.js,vue-component,v-for,Vue.js,Vue Component,V For,我是Vue的新手,我遇到了一个情况,我想就这个问题提出一些建议 在我的js文件中,我有一些数组,其中包含一些我想插入到表中的数据: const d1=[{col1:"aaa1",col2:"bbb1",col3:"ccc1",col4:"ddd1",col5:"eee1"}, {col1:"aaa2",col2:"bbb2",col3:"ccc2",col4:"ddd2",col5:"eee2"}] const d2=[{col1:"fff1",col2:"ggg1",col

我是Vue的新手,我遇到了一个情况,我想就这个问题提出一些建议

在我的js文件中,我有一些数组,其中包含一些我想插入到表中的数据:

const d1=[{col1:"aaa1",col2:"bbb1",col3:"ccc1",col4:"ddd1",col5:"eee1"},
          {col1:"aaa2",col2:"bbb2",col3:"ccc2",col4:"ddd2",col5:"eee2"}]
const d2=[{col1:"fff1",col2:"ggg1",col3:"hhh1",col4:"iii1",col5:"jjj1"},
          {col1:"aaa2",col2:"bbb2",col3:"ccc2",col4:"ddd2",col5:"eee2"}]
然后我将这两个数组保存在另一个名为availableData的变量中

const availableData=[d1,d2];
我的vue实例如下所示:

new Vue({
  el: '#c1',
  data: {
    availableData,
  }
});
在HTML中,我试图在row div中添加for循环(v-for),以便该行可以显示availableData变量中的每个数据,但在尝试将d1传递到第一行和d2传递到第二行时遇到一些问题

<div id="c1" class="columns">

// ...some code

    <div class="row" v-for="data in availableData">
        <div class="cell">
            {{data.col1}}
        </div>
        <div class="cell">
            {{data.col2}}
        </div>
        <div class="cell">
            {{data.col3}}
        </div>
        <div class="cell">
            {{data.col4}}
        </div>
        <div class="cell">
            {{data.col5}}
        </div>
    </div>
</div>

那么,有没有一种方法可以通过像我这样的变量来实现迭代,或者这种方法不是一种可行的方法呢?

你有几种解决方案可以实现你想要的

解决方案#1:

您可以更改availableData以显示所需的所有数据。您只需将数组按如下方式展开:
const availableData=[…d1,…d2]

使用此代码,您的availableData变量将具有:

const availableData = [{col1:"aaa1",col2:"bbb1",col3:"ccc1",col4:"ddd1",col5:"eee1"},
          {col1:"aaa2",col2:"bbb2",col3:"ccc2",col4:"ddd2",col5:"eee2"},
          {col1:"fff1",col2:"ggg1",col3:"hhh1",col4:"iii1",col5:"jjj1"},
          {col1:"aaa2",col2:"bbb2",col3:"ccc2",col4:"ddd2",col5:"eee2"}]
解决方案#2

您可以在模板中进行双重迭代:

<div class="data" v-for="data in availableData">
    <div class="row" v-for="row in data">
        <div class="cell">
            {{row.col1}}
        </div>
        <div class="cell">
            {{row.col2}}
        </div>
        <div class="cell">
            {{row.col3}}
        </div>
        <div class="cell">
            {{row.col4}}
        </div>
        <div class="cell">
            {{row.col5}}
        </div>
    </div>
 </div>

{{row.col1}}
{{row.col2}}
{{row.col3}}
{{row.col4}}
{{row.col5}}

尝试[…d1,…d2]获取可用数据;您的availableData现在包含两个对象数组,而不是四个对象。解决方案2,{{row.col1},{{row.col2}},{row.col2}}……在它们各自的div中没有显示Hi,感谢您的建议,我完全不使用索引就可以完成第二个解决方案,我编写的外部div和第二层,然后我就可以制作{{row.col1},{{row.col1}}。。。显示,是否确认或提供有关添加索引不起作用的信息?谢谢你说得对!我会纠正的。你不需要使用索引!干得好
<div class="data" v-for="data in availableData">
    <div class="row" v-for="row in data">
        <div class="cell">
            {{row.col1}}
        </div>
        <div class="cell">
            {{row.col2}}
        </div>
        <div class="cell">
            {{row.col3}}
        </div>
        <div class="cell">
            {{row.col4}}
        </div>
        <div class="cell">
            {{row.col5}}
        </div>
    </div>
 </div>