Bagaimana untuk menomborkan item tatasusunan tertentu jika syarat tertentu dipenuhi dalam Vue JS?
P粉665427988
P粉665427988 2024-03-30 16:33:24
0
2
472

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:

  • Daniel
  • Mawar - Lalai 1
  • Rachel
  • Kegembiraan
  • Monica - Lalai 2
  • Gunther - Lalai 3

Daripada contoh di atas, saya rasa agak jelas apa yang saya ingin capai. Apakah cara paling mudah untuk mencapai ini dalam vue?

P粉665427988
P粉665427988

membalas semua(2)
P粉790187507

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
P粉491421413

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)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan