Chọn mảng javascript

Với rất nhiều phương thức xử lý, Array API là một trong những phương thức lớn nhất trong JavaScript. Lúc đầu, nó được sử dụng rất nhiều, nhưng sau đó ngày càng được sử dụng nhiều hơn, cụ thể như phương thức như map() và forEach()

Hiểu và sử dụng đúng các phương thức là rất quan trọng. Việc sử dụng sai có thể dẫn đến những lỗi khó chịu. Trong bài viết này, chúng ta sẽ xem xét mười phương thức phiên bản hữu ích hơn của các đối tượng JavaScript Array

1. Lát cắt

Nếu bạn muốn tạo một bản sao của một mảng theo chỉ mục đầu và cuối, bạn có thể muốn sử dụng slice (). Phương thức này là một hàm thuần túy nên nó sẽ không có bất kỳ tác dụng phụ nào, cũng như không làm thay đổi mảng đích

“Phương thức slice() trả về một bản sao nông của một phần của mảng thành một đối tượng mảng mới được chọn từ đầu đến cuối (không bao gồm phần cuối) trong đó phần đầu và phần cuối biểu thị chỉ mục của các mục trong mảng đó. Mảng ban đầu sẽ không bị sửa đổi. ” — MDN“Phương thức slice() trả về một bản sao nông của một phần của mảng thành một đối tượng mảng mới được chọn từ đầu đến cuối (không bao gồm phần cuối) trong đó phần đầu và phần cuối biểu thị chỉ mục của các mục trong mảng đó. Mảng ban đầu sẽ không bị sửa đổi. ” — MDN

Cả hai thông số đều là tùy chọn. Nếu được gọi mà không có tham số nào, nó sẽ chỉ sao chép toàn bộ đối tượng. Nếu bạn gọi nó chỉ với một tham số, nó sẽ cung cấp cho bạn một mảng có độ dài = 1. Bạn có thể sử dụng hiệu ứng bù âm để lấy các phần tử cuối cùng của mảng

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.slice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.slice(0,3)) // output: array [1, 2, 3]
console.log(array.slice()) // output: array [1, 2, 3, 4, 5, 6, 7, 8, 9]

Phương pháp này hữu ích khi bạn cần tạo các tập hợp con trên một mảng và không muốn mảng đầu của bạn bị thay đổi

2. mối nối

Phương pháp này tương tự như phương pháp trước nhưng có một điểm khác biệt lớn. Nó sẽ thay đổi mảng ban đầu của bạn. Nó rất hữu ích khi bạn đang xử lý một mảng lớn và bạn cần sử dụng một phần các tập tin của nó

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
4

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []

3. Bao gồm

Kiểm tra phần tử có trong mảng hay không và kết quả trả về là.

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
5 hoặc
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
6

Để điều chỉnh hiệu suất, bạn có thể chuyển chỉ số bắt đầu làm tham số thứ hai. Chỉ số đó có thể âm hoặc dương. If sound, it will check the end of the x

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false

Khi kết quả được tìm thấy, nó sẽ dừng tìm kiếm tiếp các phần tử còn lại giúp tiết kiệm điện năng hiệu quả hơn và rút gọn hơn là mã sau

function includes(array, target) {
  for (let i =0; i< array.length; i++) {
    if(array[i] === target) {
      return true;
    }
  }
  return false;
}

4. Một số

Phương thức

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
7 cũng tương tự như phương thức
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
8. Nó không làm thay đổi mảng truyền vào. Sự khác biệt của
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
7 là cung cấp một
function includes(array, target) {
  for (let i =0; i< array.length; i++) {
    if(array[i] === target) {
      return true;
    }
  }
  return false;
}
0 và bao gồm phương thức
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
8 dựa trên các đối tượng phù hợp. Một điểm khác nữa là nó không cho phép bạn thay đổi giá trị chỉ mục ban đầu. cú pháp. mảng. some(callback(element[, index[, array]])[, thisArg]) Giả sử có một mảng và ta muốn kiểm tra xem có bất kỳ mục nào lớn hơn 10 hay không, ta không thể sử dụng
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
8 trong trường hợp này. Sử dụng
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
7 sẽ phù hợp hơn với vấn đề này. Ví dụ

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
4

5. Mọi

Phương thức này giống như

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
7. Nhưng nó sẽ trả về
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
5 nếu như tất cả các phần tử của mảng phù hợp với điều kiện kiểm tra, thay vì chỉ cần một phần tử như
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
7. Constructor.
function includes(array, target) {
  for (let i =0; i< array.length; i++) {
    if(array[i] === target) {
      return true;
    }
  }
  return false;
}
7 Ví dụ

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
9

6. Tìm thấy

Phương thức

function includes(array, target) {
  for (let i =0; i< array.length; i++) {
    if(array[i] === target) {
      return true;
    }
  }
  return false;
}
8 rất hữu ích khi cần tìm một phần tử điều kiện. Constructor

function includes(array, target) {
  for (let i =0; i< array.length; i++) {
    if(array[i] === target) {
      return true;
    }
  }
  return false;
}
9 Nó sẽ trả về phần tử đầu tiên phù hợp với điều kiện tìm kiếm hoặc
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
40 nếu không có phần tử nào phù hợp. Ví dụ

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []
3

7. Shift Phương thức này đơn giản và dễ hiểu. Nó xóa phần tử đầu tiên ra khỏi mảng và trả về phần tử đó. Hãy cẩn thận vì nó sẽ làm thay đổi mảng ban đầu. Do đó nó khác gì với phương thức

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
41 ?

Ví dụ

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []
7

8. Unshift Phương thức này được sử dụng để thêm các phần tử vào mảng giống phương thức

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
44 nhưng sẽ thêm vào đầu mảng. Ví dụ

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []
9

9. FlatMap Trước khi hiểu phương thức FlapMap là gì, ta sẽ xem định nghĩa phương thức flat() “Phương thức flat() tạo một mảng mới với tất cả các phần tử mảng con được nối vào nó theo cách đệ quy đến độ sâu đã chỉ định. ” — MDN Tạm dịch. phương thức

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
45 tạo một mảng mới với tất cả các phần tử trong mảng con bên trong được kết nối lại với nhau một cách đệ quy theo chiều sâu. Tham số truyền vào là giá trị chiều sâu mà bạn muốn thay đổi với mảng của mình ( Array con được gọp lại vô mảng chính). Default is 1. Ví dụ

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
1

Do đó flapMap() là một phương thức kết hợp giữa

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
46 và
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
45

Phương thức flatMap() trả về một mảng mới được hình thành bằng cách áp dụng hàm gọi lại đã cho cho từng phần tử của mảng, sau đó làm phẳng kết quả theo một mức. Nó giống hệt với map() theo sau là flat() có độ sâu 1, nhưng hiệu quả hơn một chút so với việc gọi hai phương thức đó một cách riêng biệt. — MDN

Tạm dừng dịch. Phương thức flatMap() trrả về một mảng mới được cấu trúc bởi một hàm gọi lại cho trước mỗi phần tử của mảng và sau đó sẽ làm phẳng các kết quả thành một cấp độ. Nó được chỉ định thành một map() với cấp độ của phẳng() là 1, nhưng hiệu quả hơn là gọi 2 hàm riêng biệt. Ví dụ

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []
0

10. Rút gọn Phương thức

const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
48 là một phương thức rất hữu ích và tiện lợi. “Phương thức reduce() thực thi một hàm rút gọn (mà bạn cung cấp) trên từng phần tử của mảng, dẫn đến một giá trị đầu ra duy nhất. ” — MDN Tạm dịch. Phương thức
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
48 thực thi một hàm rút gọn ( tự định nghĩa ) trên mỗi phần tử của mảng, kết quả trả về là một giá trị duy nhất. Ví dụ. tạo bản đồ với
const array = [1,2,3,4,5];
>> undefined
array.includes(3)
>> true
array.includes(3,4)
>> false
array.includes(3,-3)
>> true
array.includes(3,-2)
>> false
48

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(array.splice(2)) // output: array [3, 4, 5, 6, 7, 8]
console.log(array.splice(0,3)) // output: array [1, 2]
console.log(array.splice()) // output: array []
1

Total results Có nhiều phương thức để xử lý mảng trong Javascript. Quan trọng là bạn phải hiểu rõ mục đích của chúng. Nên đặt câu hỏi trước khi sử dụng một phương thức, ví dụ như

  • Đây phải là phương thức tốt nhất cho trường hợp mình đang cần hay chưa?
  • Mình có cần thay đổi mảng hay không? . Trong trường hợp đơn giản, có thể không cần quan tâm đến nhiều hiệu suất, nhưng khi ứng dụng phát triển lớn lên, bạn phải chú ý đến nhiều hiệu suất của các phương thức này. Là những kỹ sư phần mềm, đây chính là công việc bạn cần phải chú ý đến hiệu quả hơn là công việc chỉ làm cho mã mình chạy được. Cảm ơn

Nguồn. https. // lập trình tốt hơn. pub/10-javascript-array-methods-to-boost-your-code-performance-acb57b455189