javascript - vue的循環(huán)v-for如何一次循環(huán)2條項(xiàng)目?
問題描述
我現(xiàn)在是這樣實(shí)現(xiàn)的 但總感覺哪兒不對
<ul v-for='(item,index) in items' v-if='index%2==0'> <li>{{items[index].name}}</li> <li>{{items[index+1].name}}</li></ul>
問題解答
回答1:<!DOCTYPE html><html><head> <meta charset='UTF-8'></head><body> <p id='app'><input type='number' v-model.number='count' /><ol> <li v-for='g in groups'><ol> <li v-for='item in g'>{{ item }}</li></ol> </li></ol> </p> <script src='http://cdn.bootcss.com/vue/2.1.6/vue.min.js'></script> <script>function GroupByCount(items, count) { var len = items.length; var arr = []; var child = []; for (var i = 0; i < len; i++) {child.push(items[i]);if (child.length === count) { arr.push(child); child = [];} } if (child.length > 0) {arr.push(child); } return arr;}new Vue({ el: ’#app’, data() {return { count: 2, items: []} }, created() {this.items = Array.apply(null, Array(20)).map(function (x, i) { return i; }) }, computed: {groups() { return GroupByCount(this.items, this.count)} }}) </script></body></html>回答2:
<ul v-for='(item,index) in items'><slot v-if='index<items.length&&index%2==0'> <li >{{items[index].name}}</li> <li v-if='index<items.length-1'>{{items[index+1].name}}</li> </slot></ul>回答3:
<ul v-for='i in (items.length / 2)'> <li>{{items[(i - 1) * 2].name}}</li> <li>{{items[(i - 1) * 2 + 1].name}}</li></ul>
大概就這么個意思吧,不過有些細(xì)節(jié)需要你自己稍微再考慮一下,比如說items.length是奇數(shù)的時候怎么辦
回答4:index是從0開始的
回答5:我怎么感覺你這樣寫和全部循環(huán)沒有區(qū)別啊。。。
回答6:你的需求具體是什么,看你的代碼并不能看出什么
下面是不是你要的東西?這一個計(jì)算屬性,把數(shù)組拆分成兩個數(shù)組放入一個數(shù)組
itemsComputed (){ let arr = []; arr.push(this.items.filter((o,i)=>i%2===0)); arr.push(this.items.filter((o,i)=>i%2===1)); return arr;}
<ul><li v-for='item in itemsComputed[0]'> ...</li> </ul> <ul><li v-for='item in itemsComputed[1]'> ...</li> </ul>回答7:
能直接用模版語法的,就不要做額外計(jì)算:
<template v-for='(item,index) in items'> <ul v-if='index % 2 == 0'><li>{{items[index].name}}</li><li v-if='index < items.length'>{{items[index+1].name}}</li> </ul></template>回答8:
額?這是為了分組顯示嗎?
<template> <ul v-for='(item,idx) in b'> <li v-for='i in item'>{{i}}</li> </ul></template><script>export default { data () { return { a: [1, 2, 3, 4, 5] } }, computed: { b () { const b = [] const a = this.a for (let i = 0, l = a.length; i < l;) {b.push([a[i++], a[i++]]) } return b } }}</script>
相關(guān)文章:
1. dockerfile - [docker build image失敗- npm install]2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題3. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!4. javascript - 怎么實(shí)現(xiàn)讓 div 里面的 img 元素 中心居中, 如下示例圖5. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢6. python 字符串匹配問題7. javascript - IOS微信audio標(biāo)簽不能通過touchend播放8. 請教python編碼風(fēng)格和異常處理問題9. javascript - js判斷用戶的網(wǎng)絡(luò)能否上網(wǎng)?10. Python Tornado批量上傳圖片并顯示功能
