Rumah > Soal Jawab > teks badan
Andaikan saya mempunyai pelbagai objek dalam keadaan vue saya seperti ini:
[ {name: "Daniel", default: false}, {name: "Ross", default: true}, {name: "Rachel", default: false}, {name: "Joey", default: false} {name: "Monica", default: true} {name: "Gunther", default: true} ]
Di halaman saya, semua nama ini ditunjukkan dalam senarai. Apa yang saya ingin paparkan di laman web adalah seperti berikut:
Daripada contoh di atas, saya rasa agak jelas apa yang saya ingin capai. Apakah cara paling mudah untuk mencapai ini dalam vue?
P粉7901875072024-03-31 15:33:32
Cuba gunakan atribut compulated
. Semak coretan kod di bawah
var app = new Vue({ el: '#app', data() { return { list: [ {name: "Daniel", default: false}, {name: "Ross", default: true}, {name: "Rachel", default: false}, {name: "Joey", default: false}, {name: "Monica", default: true}, {name: "Gunther", default: true}, ] }; }, computed: { getList() { let index = 1; return this.list.map(item => { return item.default ? `${item.name} - Default ${index++}` : `${item.name}`; }); } } })
sssccc
- {{item}}
P粉4914214132024-03-31 14:41:07
Anda boleh menggunakan Array.map untuk mengulangi semua elemen tatasusunan dan menjana hasil yang anda inginkan
const data = [ { name: "Daniel" , default: false }, { name: "Ross" , default: true }, { name: "Rachel" , default: false }, { name: "Joey" , default: false }, { name: "Monica" , default: true }, { name: "Gunther", default: true } ]; let defaultCount = 0; const res = data.map(item => `${item.name}${item.default? ` default ${++defaultCount}`:''}`) console.log(res)