Alih Keluar Atribut Kosong daripada Objek dalam JavaScript
Dalam JavaScript, objek boleh mempunyai sifat yang tidak ditentukan atau batal, yang boleh mengacaukan kod dan menjadikannya lebih sukar untuk dikerjakan. Untuk membetulkannya, kita boleh mengalih keluar atribut kosong ini daripada objek menggunakan pelbagai teknik.
ES10/ES2019
Kaedah ini menggunakan pengenalan Object.fromEntries() kaedah:
- Satu pelapik: biarkan o = Object.fromEntries(Object.entry(obj).filter(([_, v]) => v != null));
- Sama seperti di atas tetapi sebagai fungsi: function removeEmpty(obj) { kembalikan Object.fromEntries(Object.entry(obj).filter(([_, v]) => v != null)); }
- Versi rekursif untuk mengalih keluar item daripada objek bersarang: function removeEmpty(obj) { return Object.fromEntries( Object.entry(obj) .filter(([_, v]) => v != null) .map(([k, v]) => [k, v === Objek(v) ? removeEmpty(v) : v]) ); }
ES6/ES2015
- Satu pelapik yang bermutasi: Object.keys(obj).forEach((k) => obj [k] == null && padam obj[k]);
- Versi tidak bermutasi: biarkan o = Object.keys(obj) .filter((k) => obj[k] != null) .reduce((a, k) => ({ ...a, [k]: obj[ k] }), {});
- Serupa dengan di atas, ditulis sebagai fungsi: function removeEmpty(obj) { return Object.entry(obj) .filter(([_, v]) => v != null) .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {} ); }
- Fungsi rekursif untuk mengendalikan objek bersarang: function removeEmpty(obj) { return Object.entry(obj) .filter(([_, v]) => v != null) .reduce( ( acc, [k, v]) => ({ ...acc, [k]: v === Objek(v) ? removeEmpty(v) : v }), {} ); }
ES5/ES2009
- Versi bukan rekursif berfungsi: function removeEmpty(obj) { return Object.keys(obj) .filter (fungsi (k) { return obj[k] != null; }) .reduce(fungsi (acc, k) { acc[k] = obj[k]; }
- Versi fungsi rekursif: function removeEmpty(obj) { return Object.keys(obj) .filter(function (k) { return obj[k] != null; }) .reduce(function (acc , k) { acc[k] = jenis obj[k] === "objek" obj[k]; kembalikan acc }, {}); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengalih Keluar Atribut Null atau Tidak Ditakrifkan daripada Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!