Hướng dẫn slice javascript

Trong bài này mình sẽ giới thiệu hàm slice trong javascript, đây là hàm dùng để trích xuất một số phần tử trong mảng js.

Hướng dẫn slice javascript

Hướng dẫn slice javascript

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Hàm sẽ trả về một mảng mới, còn mảng cũ thì không bị ảnh hưởng. Trước khi đi vào khái niệm thì hãy xem ví dụ mình lấy từ trang Mozilla dưới đây.

const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2));
// output: Array ["camel", "duck", "elephant"]

console.log(animals.slice(2, 4));
// output: Array ["camel", "duck"]

console.log(animals.slice(1, 5));
// output: Array ["bison", "camel", "duck", "elephant"]

console.log(animals.slice(-2));
// output: Array ["duck", "elephant"]

console.log(animals.slice(2, -1));
// output: Array ["camel", "duck"]

1. Slice trong javascript là gì?

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.

Lưu ý là hàm sẽ trích xuất không bao gồm phần tử end truyền vào. Ví dụ array.slice(1,4) thì các phần tử được trích xuất sẽ là 1, 2 và 3 (không bao gồm phần tử 4).

Bài viết này được đăng tại [free tuts .net]

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. Hàm sẽ không làm thay đổi mảng gốc.

Cú pháp hàm slice trong js như sau:

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.
  • Hàm sẽ return về một mảng mới.
  • Nếu startend là giá trị âm thì nó sẽ tính từ cuối mảng trở về đầu mảng.

Ví dụ: Lấy một vài phần tử trong mảng hiện có.

let fruits = ['Chuối', 'Cam', 'Chanh', 'Táo', 'Xoài'];

// Lấy hai phần tử Cam và Chanh trong mảng fruits
// Ta phải nhập 1,3 vì phần tử cuối cùng không được tính.
let citrus = fruits.slice(1, 3);
​
// fruits chứa ['Chuối', 'Cam', 'Chanh', 'Táo', 'Xoài'];
// citrus chứa ['Cam','Chanh'];

2. Một ví dụ thực hành với slice trong javascript

Ví dụ: sử dụng hàm array.slice để trích xuất nội dung của mảng ban đầu.


Trên là cú pháp và cách sử dụng hàm slice trong javascript. Đây là hàm tương đối dễ học nên mình không cho nhiều ví dụ.

Bài viết được sự cho phép của tác giả Lưu Bình An

Phương thức **slice** (copy cho em một miếng) có thể sử dụng trên 2 kiểu String và Array

Cách sử dụng cơ bản thì ta có thể truyền vào index bắt đầu, và index kết thúc (kết quả tả về không bao gồm index kết thúc)

Hướng dẫn slice javascript

Hướng dẫn slice javascript

Index kết thúc cũng có thể bỏ qua, lúc này nó sẽ hiểu là lấy hết luôn các phần tử còn lại.

Hướng dẫn slice javascript

Và nếu mà chúng ta truyền giá trị index kết thúc nó lớn hơn chiều dài của mảng, thì nó cũng không lỗi, mà trả về toàn bộ như không truyền vào

Hướng dẫn slice javascript

Còn vui vui, bạn không truyền vào index bắt đầu luôn, thì nó cũng không lỗi nốt, mà sẽ sao y toàn bộ các phần tử vào mảng mới

Hướng dẫn slice javascript

Với index bắt đầu nhận vào là undefined nó sẽ hiểu là 0 (em cũng lại javascript)

Hướng dẫn slice javascript

Index bắt đầu lớn hơn độ dài của array? Nó sẽ cho ta kết qua là một mảng rỗng

Hướng dẫn slice javascript

Chưa đủ thú vị? Vậy truyền vào số âm thì sao?

Hướng dẫn slice javascript

Lúc này nó sẽ được tính theo cơ chế index ngược, các giá trị âm sẽ được tính theo index: thằng cuối cùng là -1, áp cuối là -2, và cứ tiếp tục đi ngược lên.

Hướng dẫn slice javascript

Chúng ta có thể dùng nó để lấy các phần tử từ phải qua trái (2 phần tử cuối, 3 phần tử cuối, ví dụ vậy)

Hướng dẫn slice javascript

Đối với String thì cũng cách dùng cũng tương tự như Array (mai quá!)

Hướng dẫn slice javascript

Mình nghĩ slice cũng là một trong những phương thức chúng rất hay sử dụng, như trong reducer của redux, dùng nó để sao y một state nào đó. Nên việc nắm vững, thực hành với nó nhiều là điều rất chi cần thiết.

https://dev.to/sandeshgit/understanding-the-slice-method-in-javascript-the-basics-negative-indexing-and-the-concept-of-shallow-copy-3m3i

Bài viết gốc được đăng tải tại vuilaptrinh.com

Có thể bạn quan tâm:

  • [Javascript] Những phương thức mà bạn cần biết khi thao tác với mảng
  • Tips xử lý Array Javascript hay không phải ai cũng biết
  • Sự khác nhau của bộ 3 Slice, Splice và Split trong Javascript

Xem thêm các việc làm JavaScript hấp dẫn tại TopDev