Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menukar objek dua lapisan ke dalam tatasusunan dalam vue (dua kaedah)

Bagaimana untuk menukar objek dua lapisan ke dalam tatasusunan dalam vue (dua kaedah)

PHPz
PHPzasal
2023-04-13 10:46:222061semak imbas

Vue ialah rangka kerja JavaScript untuk pembangunan pesat aplikasi web. Dalam Vue, kami biasanya menggunakan objek untuk pengurusan data, tetapi kadangkala kami perlu menukar nilai hartanah dalam objek kepada tatasusunan untuk memudahkan traversal dan operasi kami. Artikel ini akan memperkenalkan dua kaedah untuk menukar objek dua lapisan kepada tatasusunan dalam Vue.

Kaedah 1: Gunakan traversal berganda

Traversal berganda ialah kaedah mudah yang boleh membantu kami menukar nilai atribut dalam objek kepada tatasusunan. Pertama, kita perlu menggunakan arahan v-for yang disediakan oleh Vue untuk melintasi semua sifat objek. Kemudian, lelaran secara dalaman ke atas objek yang sepadan dengan setiap sifat dan tukarkannya menjadi tatasusunan. Berikut ialah kod sampel:

<template>
  <div>
    <ul>
      <li v-for="(obj, index) in object" :key="index">
        {{ index }}
        <ul>
          <li v-for="(value, key) in obj" :key="key">
            {{ key }}: {{ value }}
          </li>
        </ul>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      object: {
        'obj1': { 'key1': 1, 'key2': 2 },
        'obj2': { 'key3': 3, 'key4': 4 }
      },
      array: []
    }
  },

  methods: {
    convertObjectToArray() {
      Object.keys(this.object).forEach(key => {
        const obj = this.object[key]
        const objArray = Object.keys(obj).map((prop) => {
          return {
            [prop]: obj[prop]
          }
        })
        this.array = [...this.array, ...objArray]
      })
    }
  },
}
</script>

Dalam kod di atas, kita mula-mula menggunakan arahan v-for untuk melintasi setiap atribut dalam objek objek, dan secara dalaman melintasi objek yang sepadan dengan setiap atribut. Kemudian, kami menggunakan kaedah Object.keys() untuk mendapatkan kunci setiap objek dan menukarnya kepada objek yang mengandungi kunci dan nilai. Akhir sekali, kami menambah semua objek yang ditukar kepada tatasusunan untuk mencapai tujuan menukar objek kepada tatasusunan. Anda boleh memanggil kaedah ini dalam kaedah convertObjectToArray() untuk mendapatkan tatasusunan yang terdiri daripada nilai harta objek dalam contoh Vue.

Kaedah 2: Gunakan perpustakaan lodash

Jika anda tidak biasa dengan perpustakaan lodash, ia adalah perpustakaan sumber terbuka yang menyediakan banyak fungsi alat Javascript yang biasa digunakan. Menggunakannya boleh memudahkan pemprosesan kod kami dan mengurangkan jumlah kod kami. Dalam aplikasi Vue, kita boleh menggunakan kaedah _.flatMapDeep() dalam perpustakaan lodash untuk menukar sifat dalam objek kepada tatasusunan.

Berikut ialah contoh kod menggunakan perpustakaan lodash:

<template>
  <div>
    <ul>
      <li v-for="(obj, index) in object" :key="index">
        {{ index }}
        <ul>
          <li v-for="(value, key) in obj" :key="key">
            {{ key }}: {{ value }}
          </li>
        </ul>
      </li>
    </ul>
  </div>
</template>

<script>
import _ from 'lodash'

export default {
  data() {
    return {
      object: {
        'obj1': { 'key1': 1, 'key2': 2 },
        'obj2': { 'key3': 3, 'key4': 4 }
      },
      array: []
    }
  },

  mounted() {
    this.array = _.flatMapDeep(this.object)
  }
}
</script>

Dalam kod di atas, kami menggunakan perpustakaan lodash yang diimport dan memanggil _.flatMapDeep dalam kaedah mounted() () kaedah. Kaedah ini menukar semua nilai harta dalam objek objek kepada tatasusunan dan menyimpannya dalam harta tatasusunan contoh Vue.

Ringkasan:

Artikel ini memperkenalkan dua kaedah untuk menukar nilai sifat objek kepada tatasusunan dalam aplikasi Vue. Kedua-dua kaedah ini sangat mudah dan mudah digunakan, tetapi pilih pelaksanaan berdasarkan keperluan anda. Jika anda memerlukan kod contoh yang lebih lengkap, anda boleh menyemak repositori GitHub dengan mengklik pautan di bawah.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek dua lapisan ke dalam tatasusunan dalam vue (dua kaedah). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn