DANH MỤC TÀI LIỆU
Một số hàm hữu ích để xử lý mảng trong Javascript
M t s hàm h u ích đ x lý m ng trong Javascript ể ử
Đôi khi chúng ta b cu n theo nh ng Framework, lib... đ c xây d ng s n ị ố ượ
mà quên đi nh ng ki n th c căn b n có th đã t ng t n t i trong đ u c a ế ồ ạ
chúng ta.
Bài vi t này s nói v nh ng ki n th c đó, chúng ta s xem xét m t vài ế ề ữ ế
ph ng th c có s n c a Array Object và cách s d ng nh ng ph c này đ ươ ụ ư ứ
s p x p, l c và nhi u tác v h n th đ có đ c k t qu mà chúng ta ế ơ ể ượ ế ả
mong mu n.
Gi i thi uớ ệ
Tr c khi tìm hi u v các ph ng th c, chúng ta nên xem xét m t chút v ướ ể ề ươ
các ph ng th c c a đ i t ng Array trong Javascript. Các ph ng th c ươ ứ ượ ươ ứ
này có th làm thay đ i giá tr c a m ng ho c không. ị ủ
Các ph ng th c này n m trong prototype c a b t kỳ m ng nào, b n có ươ ủ ấ
th s d ng console devtool c a trình duy t đ log ra m t m ng b t kỳ và ể ử
các ph ng th c có trong prototype c a nó.ươ ứ
Danh sách này li t kê t t c các ph ng th c mà b n có th s d ng v i ươ ể ử
b t c m ng nào, nh đã nói trên, các ph ng th c có th làm thay đ i ấ ứ ư ươ
giá tr c a m ng ho c s nh n l i giá tr t ph ng th c. ị ừ ươ
B n cũng bi t r ng không có giá tr nào trong m t m ng c a Javascript ế ằ
đ c c đ nh, có nghĩa nó có th thay đ i b t c lúc nào (k các các ượ ố ị
ph ng th c c a m ng). T t nhiên b n v n có cách làm cho chúng không ươ ứ ủ
th thay đ i, nh ng theo "đ nh nghĩa" thì m ng luôn có th thay đ i n i ể ổ ư ể ổ
dung và đ i dài.
.sort() và .reverse()
T i gi i thi u 2 ph ng th c này tr c tiên, vì theo tôi chúng là nh ng ố ớ ươ ướ
ph ng th c đ n gi n và th ng dùng nh t c a chúng ta.ươ ơ ườ ấ ủ
Đ gi i thi u v 2 ph ng th c này, tôi s d ng m t m ng s đ n gi n ươ ử ụ ố ơ
nh sau:ư
var array = [1, 8, 3, 5, 9, 7];
Hãy t ng t ng, b n có m t m ng nh trên, nh ng gi b n mu n m ng ưở ượ ư ư ờ ạ
đó ph i đ c s p x p t nh t i l n. ượ ế ỏ ớ
var sortedArray = array.sort();
Nó s tr l i m ng m i v i các giá tr : ả ạ
[1, 3, 5, 7, 8, 9]
Ph ng th c này cũng làm vi c v i các chu i, ký t n u b n mu n s p ươ ự ế
x p chúng theo th t b ng ch cái, nó s th c hi n vi c s p x p mà ế ứ ự ế
không c n truy n vào b t kỳ tham s nào.ầ ề
L u ý: Ph ng th c nàyư ươ ứ tr l i m t m ng m i và th t các ph n t c aứ ự
m ng cũng b thay đ i. ị ổ
B n cũng có th truy n tham s cho ph ng th c này, tham s đó là ể ề ươ hàm
s p x p, theo m c đ nh c a Javascript thì hàm đó s là: ế ặ ị
array.sort((a, b) => {
// a = ph n t hi n t i c a m ngầ ử ệ ạ
// b = ph n t ti p theo c a m ng ử ế
return a < b;
});
Ch c năng c a hàm s p x p m c đ nh là đi qua m i ph n t c a m ng và ế ử ủ
xem xét li u ph n t hi n t i có nh h n ph n t ti p theo hay không và ầ ử ệ ạ ơ ầ ử ế
theo cách đó t ch c l i m ng c a b n. Vì v y, n u b n mu n s p x p ổ ứ ủ ạ ế ế
ng c l i thì vi c ph i làm là xem xét xem ph n t hi n t i có l n h n ượ ạ ơ
ph n t ti p theo hay không, nh th này: ử ế ư ế
array.sort((a, b) => {
return a > b;
});
// [9, 8, 7, 5, 3, 1]
Ngoài ra có m t cách khác đ th c hi n vi c s p x p theo chi u t nh t i ể ự ế ề ừ
l n, đây là lúc ph ng th c ươ .reverse() xu t hi n, ch c năng c a ph ng ấ ệ ươ
th c này là đ o ng c th t c a m ng. Do đó ngoài cách trên, chúng ta có ượ ứ ự
thêm cách:
array.sort().reverse();
// [9, 8, 7, 5, 3, 1]
Ph ng th c này không nh n vào tham s nào, tr l i m t m ng m i và ươ ả ạ
làm thay đ i m ng g i nó.ổ ả
.filter()
Sau khi chúng ta đã bi t v vi c s p x p và đ o ng c m t m ng, ti p ế ề ệ ế ượ ế
theo chúng ta s tìm hi u cách l c m t m ng s d ng ph ng th c ươ .filter().
Chúng ta s s d ng m t m ng d li u m u, m ng này s đ c s d ng ử ụ ẽ ượ ử ụ
cho nh ng ví d sau n a. ụ ữ
var people = [
{
name: 'Helga Brekke',
age: 25,
gender: 'f',
us: true
},
{
name: 'Christine Hansen',
age: 18,
gender: 'm',
us: false,
},
{
name: 'Alfred Roob',
age: 17,
gender: 'm',
us: false,
},
{
name: 'Crystal Hermann',
age: 27,
gender: 'm',
us: false,
},
{
name: 'Dax Koch',
age: 22,
gender: 'f',
us: true
}
];
B n có m ng này và b n ch mu n có đ c danh sách nh ng ng i là ph ỉ ố ượ ườ
n . V c b n nh ng gì b n ph i làm là l c m ng này và ch nh n nh n ơ ả ữ ạ ả ậ ẫ
nh ng đ i t ng có tr ng ố ượ ườ gender là f.
Ph ng th c này tr l i m t m ng, không làm thay đ i m ng g i nó.ươ ả ạ
Ph ng th cươ .filter() nh n vào m t tham s và đ i s là m t hàm, hàm mà ố ố
chúng ta mu n ch y cho t ng ph n t trong m ng. ầ ử
Hàm tham s c a .filter() nh n vào 1 tham s , đó là ph n t hi n t i c a ạ ủ
m ng mà vi c l c đang th c hi n. ệ ọ
thông tin tài liệu
Đôi khi chúng ta bị cuốn theo những Framework, lib... được xây dững sẵn mà quên đi những kiến thức căn bản có thể đã từng tồn tại trong đầu của chúng ta. Bài viết này sẽ nói về những kiến thức đó, chúng ta sẽ xem xét một vài phương thức có sẵn của Array Object và cách sử dụng nhưng phức này để sắp xếp, lọc và nhiều tác vụ hơn thể để có được kết quả mà chúng ta mong muốn.
Mở rộng để xem thêm
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×