Một số hàm xử lý với mảng trong Javascript
Bài đăng này đã không được cập nhật trong 3 năm
Xin chào mọi người, hôm nay mình sẽ giới thiệu một số hàm xử lý với mảng trong JS, mong mọi người theo dõi
1) forEach
forEach được sử dụng để duyệt qua từng phần tử của mảng
Cú pháp:
array.forEach(function(currentValue, index, arr), thisValue)
Trong đó
- currentValue: Giá trị hiện tại của phần tử
- index: Không bắt buộc, là vị trí của phần tử hiện tại
- arr: Không bắt buộc, là mảng mà chứa phần tử hiện tại
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const users = [
{ id: 1, name: 'A' },
{ id: 2, name: 'B' },
{ id: 3, name: 'C' },
];
users.forEach(function (user) {
console.log(user.name);
});
/*
Output:
A
B
C
*/
2) includes
includes: được sử dụng để check sự tồn tại của item nào trong mảng, Sẽ trả ra kết quả là True nếu như tìm thấy và người lại sẽ trả về là false
Cú pháp :
array.includes(searchvalue, start)
Trong đó
- searchvalue là item cần kiểm tra trong mảng
- start là vị trí bắt đầu kiểm tra trong mảng, mặc định mang giá trị 0 tức là phương thức sẽ kiểm tra từ đầu mảng.
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
arr.includes(1); // output: true
arr.includes(1, 2); // output: false
3) filter
filter được sử dụng để lọc các phần tử trong mảng theo một điều kiện mà bạn đặt ra. Hàm này sẽ trả về một mảng mới chứa các phần tử thỏa mãn điều kiện.
Cú pháp
array.filter(function(currentValue, index, arr), thisValue)
Trong đó
- currentValue: Giá trị hiện tại của phần tử
- index: Không bắt buộc, là vị trí của phần tử hiện tại
- arr: Không bắt buộc, là mảng mà chứa phần tử hiện tại
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
// lọc ra các phần tử có giá trị lớn hơn 2
const result = arr.filter(num => num > 2);
console.log(result); // output: [3, 4, 5, 6]
4) reduce
reduce được sử dụng khi bạn muốn thực thi một callback lên từng phần tử (từ trái qua phải) với một biến được “tích lũy” để trả về một giá trị duy nhất.
Cú pháp
array.reduce((prev, next, index, array) => {...}, initialValue)
Trong đó
- prev: biến tích lũy, truyền giá trị trả về của mỗi lần gọi callback, nó là giá trị tích lũy được trả về trong lần gọi callback trước, hoặc giá trị của tham số initialValue, nếu được cung cấp
- next: là giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- arr: Không bắt buộc, là mảng mà phần tử hiện tại thuộc về.
- initialValue: Giá trị cho tham số thứ nhất của hàm callback trong lần gọi đầu tiên. Nếu giá trị ban đầu này không được cung cấp, phần tử đầu tiên của mảng sẽ được dùng.
Ví dụ
// TÍnh tổng của các phần tử trong mảng
const arr = [1, 2, 3, 4, 5, 6];
const sum = arr.reduce((total, value) => {
return total + value;
}, 0);
console.log(sum); // output: 21
5) some
Some Được sử dụng để kiểm tra một mảng có thỏa mãn điều kiện của bạn hay không
Cú pháp
array.some(function(currentValue, index, arr), thisValue)
Trong đó
- currentValue: giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- arr: Không bắt buộc, là mảng mà phần tử hiện tại thuộc về.
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
// kiểm tra xem mảng có phần tử nào lớn hơn 7 không
const result = arr.some(num => num > 7);
console.log(result); // output: false
// kiểm tra xem các phần từ có lớn hơn 0 hay không
const result = arr.some(num => num > 0);
console.log(result); // output: true
6) every
every Hàm này thì hơi khác hàm some một chút đó là nó sẽ check hết các phần tử trong mảng thỏa mãn điều kiện rồi trả về true hoặc false
Cú pháp
array.every(function(currentValue, index, arr), thisValue)
- currentValue: giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- arr: Không bắt buộc, là mảng mà phần tử hiện tại thuộc về.
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
// Kiểm tra xem các phần tử trong mảng có phải toàn là số lẻ hay không
let isOddArray = arr.every(item => {
return item % 2 !== 0;
});
console.log(isOddArray); // false
7) map
map hàm map sẽ tạo ra một array mới duyệt qua các phần tử và áp dụng 1 biểu thức logic – biểu thức này được cung cấp qua 1 hàm callback.
Cú pháp
array.map(function(currentValue, index, arr), thisValue)
Trong đó
- currentValue: giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- arr: Không bắt buộc, là mảng mà phần tử hiện tại thuộc về.
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
// nhân đôi giá trị của các phần tử trong mảng
var result = arr.map(item => {
return item * 2;
});
console.log(result); // [2, 4, 6, 8, 10, 12]
8) pop
Hàm array.pop() có chức năng xóa bỏ phần tử cuối cùng của mảng, hàm sẽ trả về phần tử bị xóa, ngoài ra thì để loại bỏ phần tử đầu tiên của mảng thì ta có thể sử dụng hàm array.shift()
Cú pháp
array.pop()
Hàm array.pop() không có tham số truyền vào.
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
console.log(arr.pop()); // 6
console.log(arr.pop()); // 5
console.log(arr.pop()); // 4
console.log(arr); // [1, 2, 3]
9) push
push được sử dụng để thêm mới một phần tử vào cuối mảng, hàm trả về chiều dài của mảng mới, ngoài ra nếu bạn muốn thêm phần tử vào vị trí đầu tiên của mảng thì có thể sử dụng hàm array.unshift()
Cú pháp
array.push(item1, item2, ..., itemX)
Trong đó
- item1, item2, ..., itemX là các phần tử sẽ được thêm vào cuối mảng array.
Ví dụ
const arr = [1, 2, 3, 4, 5, 6];
arr.push(7, 8, 9)
console.log(arr); // output [1, 2, 3, 4, 5, 6, 7, 8, 9]
10) sort
sort() được sử dụng khi bạn muốn sắp xếp các phần tử trong mảng theo chiều tăng dần hoặc giảm dần. Mặc định phương thức sort() sẽ sắp xếp mảng theo thứ tự bảng chữ cái theo chiều tăng dần.
Cú pháp
array.sort(compareFunction)
Trong đó
compareFunction là tham số không bắt buộc. Nó là một hàm định nghĩa thứ tự sắp xếp, hàm này nên được trả về giá trị âm, 0 hoặc dương tùy thuộc vào tham số của nó, khi phương thức sort so sánh 2 giá trị, nó sẽ gửi các giá trị đó đến hàm này, và sắp xếp chúng dựa vào kết quả trả về của hàm này
Ví dụ
const arr = [1, 3, 2, 4, 6, 5];
const alpha = ['d', 'a', 'u'];
// sắp xếp theo thứ tự giảm dần
descOrder = arr.sort((a, b) => a > b ? -1 : 1);
console.log(descOrder); // output: [6, 5, 4, 3, 2, 1]
// sắp xếp theo thứ tự tăng dần
ascOrder = alpha.sort((a, b) => a > b ? 1 : -1);
console.log(ascOrder); // output: ["a", "d", "u"]
11) from
array.from() Cho phép bạn tạo các array từ một kiểu dữ liệu khác
Cú pháp
Array.from(object, mapFunction(currentValue, index), thisValue)
Trong đó
- object: Bắt buộc, là đối tượng bạn muốn chuyển sang dạng mảng
- mapFunction(currentValue, index): Không bắt buộc, là một function hoạt động tương tự như array.map, sẽ duyệt lần lượt trên từng phần tử mảng.
- currentValue: giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của mapFunction, nếu không truyền this sẽ là undefined
Ví dụ
const name = 'javascript';
const nameArray = Array.from(name);
console.log(name); // output: javascript
console.log(nameArray); // output: ['j', 'a', 'v', 'a', 's', 'c', 'r', 'i', 'p', 't']
12) slice
Hàm slice có chức năng trích xuất một số phần tử của mảng, vị trí bắt đầu và kết thúc việc trích xuất sẽ được xác định bởi tham số truyền vào hàm Hàm sẽ trích xuất không bao gồm phần tử end truyền vào Hàm sẽ trả về kết quả là một mảng mới bao gồm các phần tử được trích xuất.
Cú pháp
array.slice(start, end)
Trong đó
- start là vị trí bắt đầu trích xuất.
- end là vị trí kết thúc, kết quả sẽ không bao gồm phần tử end.
Ví dụ
const arr = [1, 3, 2, 4, 6, 5];
// Mảng newArr được trích từ mảng arr, trích từ phần tử index 1, tới phần tử index 3
const newArr = arr.slice(1, 3);
console.log(citrus); // [3, 2]
13) toString
toString() sẽ trả về một string từ mảng ban đầu, với các phần tử mảng ngăn cách nhau bằng dấu phẩy “,”.
Cú pháp
array.toString()
Trong đó array là mảng cần chuyển đổi thành chuỗi. Hàm này không có tham số
Ví dụ
const arr = [1, 3, 2, 4, 6, 5];
console.log(arr.toString()); // "1,3,2,4,6,5"
14) concat
concat được sử dụng để gộp nhiều mảng lại với nhau, hàm sẽ trả về một mảng mới gồm giá trị của các mảng được truyền vào
Cú pháp
array1.concat(array2, array3, ..., arrayX)
Trong đó
- array1,array2, array3, ..., arrayX là các mảng muốn nối lại với nhau
Ví dụ
const arr1 = [1, 3, 2];
const arr2 = [4, 6, 5];
console.log(arr1.concat(arr2)); // [1, 3, 2, 4, 6, 5]
15) find
find được sử dụng để tìm kiếm một phần tử trong mảng thỏa mãn điều kiện, hàm sẽ trả về phần tử đầu tiên thỏa mãn điều kiện
Cú pháp
array.find(function(currentValue, index, arr),thisValue)
Trong đó
- currentValue: giá trị của phần tử hiện tại
- index: Không bắt buộc, là vị trí của phần tử hiện tại.
- arr: Không bắt buộc, là mảng mà phần tử hiện tại thuộc về.
- thisValue: Không bắt buộc, nếu truyền vào thì nó sẽ được làm giá trị this của function, nếu không truyền this sẽ là undefined
Ví dụ
const arr = [1, 3, 2, 4, 6, 5];
const result = arr.find(item => item === 6);
console.log(result) //o output: 6
Lời kết
Như vậy mình đã giới thiệu một số hàm xử lý với mảng trong JS, ngoài ra còn nhiều hàm xử lý khác nữa mọi người có thể xem thêm tại đây. Cám ơn mọi người đã theo dõi bài viết của mình
Nguồn tham khảo
All rights reserved