Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mendapatkan Senarai Nama Harta Objek dengan Cekap dalam JavaScript?

Bagaimanakah Saya Boleh Mendapatkan Senarai Nama Harta Objek dengan Cekap dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 10:01:13234semak imbas

How Can I Efficiently Retrieve a List of Object Property Names in JavaScript?

Mengenal pasti Sifat Objek dalam JavaScript

Dalam JavaScript, objek memainkan peranan penting dalam menyimpan dan memanipulasi data. Untuk mengakses sifat (pasangan nilai kunci) sesuatu objek, pelbagai kaedah tersedia. Artikel ini meneroka cara yang cekap untuk mendapatkan semula senarai nama sifat, yang boleh berguna untuk pelbagai tujuan.

Kaedah Object.keys

Pelayar moden (IE9 , FF4 , Chrome5 , Opera12 , Safari5 ) menyediakan kaedah Object.keys, yang mengembalikan tatasusunan yang mengandungi nama harta benda yang ditentukan objek.

const myObject = {
  ircEvent: "PRIVMSG",
  method: "newURI",
  regex: "^http://.*"
};

const keys = Object.keys(myObject);
console.log(keys); // ["ircEvent", "method", "regex"]

Polyfill untuk Penyemak Imbas Lama

Untuk penyemak imbas yang tidak menyokong Object.keys, polyfill boleh digunakan:

const getKeys = function(obj) {
   const keys = [];
   for (const key in obj) {
      keys.push(key);
   }
   return keys;
}

const keys = getKeys(myObject);
console.log(keys); // ["ircEvent", "method", "regex"]

Extend Object. prototaip

Sebagai alternatif, Object.prototype boleh dilanjutkan dengan .keys() kaedah:

Object.prototype.keys = function() {
   const keys = [];
   for (const key in this) {
      keys.push(key);
   }
   return keys;
}

const keys = myObject.keys();
console.log(keys); // ["ircEvent", "method", "regex"]

Perhatikan bahawa memanjangkan prototaip mungkin mempunyai kesan sampingan yang tidak diingini. Sebaliknya, anda disyorkan untuk menggunakan Object.keys atau polyfill.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Senarai Nama Harta Objek dengan Cekap dalam JavaScript?. 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