Rumah  >  Artikel  >  hujung hadapan web  >  Menggunakan fungsi JavaScript untuk mengisih dan menapis tatasusunan

Menggunakan fungsi JavaScript untuk mengisih dan menapis tatasusunan

王林
王林asal
2023-11-03 15:41:071031semak imbas

Menggunakan fungsi JavaScript untuk mengisih dan menapis tatasusunan

Fungsi JavaScript melaksanakan pengisihan dan penapisan tatasusunan

Dalam JavaScript, kita selalunya perlu mengisih dan menapis tatasusunan. Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk melaksanakan pengisihan dan penapisan tatasusunan, serta memberikan contoh kod khusus.

1. Isih tatasusunan

JavaScript menyediakan fungsi sort() untuk menyusun tatasusunan. Terdapat dua cara untuk menggunakan fungsi sort() Salah satunya ialah mengisih tanpa lulus parameter dan mengisih mengikut peraturan pengisihan lalai (mengisih mengikut pengekodan Unicode); nilai fungsi.

Sebagai contoh, untuk mengisih tatasusunan yang mengandungi integer, anda boleh menggunakan kod berikut:

const arr = [5, 3, 8, 1, 10];

// 默认排序
const sortedArr1 = arr.sort();
console.log(sortedArr1); // [1, 10, 3, 5, 8]

// 自定义比较函数进行排序
const sortedArr2 = arr.sort((a, b) => a - b);
console.log(sortedArr2); // [1, 3, 5, 8, 10]

Dalam kod di atas, dengan menghantar fungsi perbandingan (a, b) => a - b Diberikan fungsi sort(), elemen tatasusunan akan diisih dari kecil ke besar mengikut nilai pulangan fungsi perbandingan. (a, b) => a - b给sort()函数,数组的元素会根据比较函数的返回值从小到大进行排序。

二、过滤数组

JavaScript提供了filter()函数用于对数组进行过滤。filter()函数需要传递一个回调函数作为参数,根据回调函数的返回值来判断是否保留数组的元素。

例如,对一个包含整数的数组进行过滤,只保留大于5的元素,可以使用以下代码:

const arr = [5, 3, 8, 1, 10];

const filteredArr = arr.filter(item => item > 5);
console.log(filteredArr); // [8, 10]

在上面的代码中,回调函数item => item > 5判断元素是否大于5,返回true则保留该元素,返回false则过滤掉该元素。

综合应用示例

下面是一个综合应用示例,演示如何对一个包含对象的数组进行按某个字段排序和过滤的操作:

const users = [
  { name: '张三', age: 20 },
  { name: '李四', age: 25 },
  { name: '王五', age: 18 },
  { name: '赵六', age: 30 },
];

// 按年龄从小到大排序
const sortedUsers = users.sort((a, b) => a.age - b.age);
console.log(sortedUsers);

// 年龄大于20的用户
const filteredUsers = users.filter(user => user.age > 20);
console.log(filteredUsers);

在上述示例中,首先通过传递一个比较函数(a, b) => a.age - b.age对包含用户对象的数组进行年龄排序,然后使用回调函数user => user.age > 20

2. Tatasusunan penapis

JavaScript menyediakan fungsi penapis() untuk menapis tatasusunan. Fungsi penapis() perlu menghantar fungsi panggil balik sebagai parameter dan menentukan sama ada untuk mengekalkan elemen tatasusunan berdasarkan nilai pulangan fungsi panggil balik.

Sebagai contoh, untuk menapis tatasusunan yang mengandungi integer dan hanya mengekalkan elemen yang lebih besar daripada 5, anda boleh menggunakan kod berikut:

rrreee

Dalam kod di atas, fungsi panggil balik item => kod > Tentukan sama ada elemen lebih besar daripada 5, kembalikan benar untuk mengekalkan elemen, kembali palsu untuk menapis elemen. 🎜🎜Contoh aplikasi yang komprehensif🎜🎜Berikut ialah contoh aplikasi komprehensif yang menunjukkan cara mengisih dan menapis tatasusunan yang mengandungi objek mengikut medan tertentu: 🎜rrreee🎜Dalam contoh di atas, mula-mula lulus fungsi perbandingan (a, b ) => a.age - b.age Isih tatasusunan yang mengandungi objek pengguna mengikut umur, dan kemudian gunakan fungsi panggil balik user => yang lebih muda daripada atau sama dengan 20 tahun. 🎜🎜Ringkasan🎜🎜Artikel ini memperkenalkan cara menggunakan fungsi JavaScript untuk mengisih dan menapis tatasusunan. Fungsi sort() boleh digunakan untuk mengisih tatasusunan, dan peraturan pengisihan boleh disesuaikan dengan menghantar fungsi perbandingan, fungsi penapis() boleh digunakan untuk menapis tatasusunan berdasarkan nilai pulangan fungsi panggil balik. Fungsi operasi tatasusunan ini adalah alat yang biasa digunakan dalam pembangunan JavaScript dan menyediakan kaedah yang mudah untuk memproses keperluan data. 🎜🎜Saya harap kandungan artikel ini dapat membantu anda! 🎜

Atas ialah kandungan terperinci Menggunakan fungsi JavaScript untuk mengisih dan menapis tatasusunan. 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