Mối nối JavaScript có bị phá hủy không?

Trong bài viết trước của tôi, chúng ta đã tìm hiểu sâu về phương thức

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
9 trên API mảng JavaScript. Lần này tôi muốn thu nhỏ và xem xét tất cả các phương thức mảng JavaScript. Vâng, không phải tất cả. Tôi chỉ muốn tập trung vào những phương pháp không phá hủy;

Show

Với React cũng như một số giải pháp quản lý trạng thái, tính bất biến là chìa khóa. Vì vậy, chẳng hạn, việc thay đổi mảng là điều không nên. Vì vậy, bây giờ tôi đã quen với việc tránh những phương thức làm thay đổi mảng khi có thể

Vì vậy, hãy xem các phương thức không phá hủy trên JavaScript Array API. Hy vọng, chúng ta có thể học được điều gì đó mới


const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']0

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
0 tạo một mảng mới được điền với kết quả của việc gọi hàm được cung cấp trên mọi phần tử của mảng

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']

Tất nhiên, phương pháp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
0 có thể được sử dụng trong các trường hợp phức tạp hơn nhiều như ánh xạ qua các chuỗi để tạo các lời hứa chạy song song

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)

Hãy xem bài đăng trước đây của tôi về Khám phá các phương pháp JavaScript Promise API để tìm hiểu thêm về cách thức hoạt động của

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
3 và các phương pháp khác


const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']4

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
4 tạo một mảng mới với tất cả các phần tử vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']

Nhiều lần tôi kết hợp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
0 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
4 với nhau trong quá trình chuyển đổi dữ liệu của mình

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
2

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
8 cũng không phá hủy vì nó tạo ra chuỗi, nhưng tôi sẽ không đề cập đến nó trong bài đăng này


const urlsToFetch = [ 'https://swapi.dev/api/people/', 'https://stats.nba.com/stats/playerindex', 'https://api.github.com/users/benmvp/repos', ] const fetchPromises = urlsToFetch.map((url) => fetchJson(url)) Promise.all(fetchPromises).then( ([starWarsPeople, nbaPlayers, myRepositories]) => { // Use fetched data }, )9

Phương thức

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
9 chạy một hàm (được gọi là “bộ giảm tốc”) trên mỗi phần tử của mảng, dẫn đến một giá trị đầu ra duy nhất có thể là một mảng mới, một đối tượng, một số, v.v.

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
6

Đọc bài viết Tìm hiểu phương pháp rút gọn mảng bằng cách triển khai lại các hàm lodash để tìm hiểu thêm về sức mạnh của

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
9


const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']22 / const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']23

Các phương pháp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
22 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
23 là bạn đồng hành của nhau

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
22 trả về
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
27 hoặc
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
28 dựa trên việc ít nhất một phần tử trong mảng có vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp hay không

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
5

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
23 cũng trả về
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
27 hoặc
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
28, nhưng dựa trên việc tất cả các phần tử trong mảng có vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp hay không

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
9


const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']62 / const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']63

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
62 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
63 cũng là bạn đồng hành của nhau

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
62 trả về giá trị của phần tử đầu tiên trong mảng vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
5

Thay vào đó, phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
63 có liên quan trả về chỉ mục của giá trị của phần tử đầu tiên trong mảng vượt qua bài kiểm tra được thực hiện bởi hàm được cung cấp. Nó trả về
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
68 nếu không có phần tử

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
8

Tôi thường sử dụng phương pháp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
62. Tôi chỉ có xu hướng sử dụng
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
63 khi tôi cần chỉ mục để lập chỉ mục vào một mảng khác hoặc lưu trữ vị trí của nó


const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']51 / const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']52 / const LETTER_G_CHAR_CODE = 71 const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const aToGNames = names.filter( (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE, ) console.log(aToGNames) // ['Aidan', 'Ben', 'David', 'Faraz']53

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
51,
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
52 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
53 đều là các phương pháp đồng hành và cũng có liên quan chặt chẽ với
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
62 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
63. Các phương thức find nhận một hàm kiểm tra, trong khi đó
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
51,
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
52 và
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
53 nhận một giá trị

Phương thức

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
51 (được thêm vào trong ES2016) trả về
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
27 hoặc
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
28 dựa trên việc mảng có bao gồm giá trị được cung cấp trong số các mục của nó hay không

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
5

Trước khi bổ sung phương pháp

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
51 vào thông số kỹ thuật ECMAScript, cách để kiểm tra việc đưa vào là với
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
96. Phương thức
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
52 trả về chỉ mục của phần tử đầu tiên trong mảng được tìm thấy, trả về
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
68 nếu không có

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
0

Tôi chỉ thực sự bao gồm

const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
53 cho đầy đủ. Tôi không chắc lần cuối tôi sử dụng nó là khi nào. Nhưng
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
53 hoạt động giống như
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
52 ngoại trừ nó hoạt động ngược từ cuối mảng. Tôi tưởng tượng nó chỉ hữu ích nếu mảng có các bản sao và bạn cần cái cuối cùng vì một lý do nào đó


const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const uppercaseNames = names.map((name) => name.toLocaleUpperCase()) console.log(uppercaseNames) // ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']52

Phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
52 hợp nhất hai hoặc nhiều mảng lại với nhau, trả về một mảng mới

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
1

Theo quan điểm của tôi, tất cả đều lỗi thời. Và không phải vì nó không phải là một hoạt động hữu ích. Tôi vừa thay thế nó bằng toán tử trải rộng

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
2

Ồ và cả

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
52 và toán tử trải đều có thể được sử dụng để tạo một bản sao nông của một mảng

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
3


const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const uppercaseNames = names.map((name) => name.toLocaleUpperCase()) console.log(uppercaseNames) // ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']55 / const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const uppercaseNames = names.map((name) => name.toLocaleUpperCase()) console.log(uppercaseNames) // ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']56

Các phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
55 và
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
56 (ES2019) là một cặp phương thức đồng hành khác

Phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
55 tạo một mảng mới từ việc làm phẳng mảng theo số cấp độ đã chỉ định sâu (mặc định là một cấp độ)

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
4

Phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
56 tạo một mảng mới bằng cách gọi hàm được cung cấp trên mọi phần tử của mảng, sau đó làm phẳng kết quả một cấp

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
5

Vì vậy,

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
56 về cơ bản là một phiên bản gọi hiệu quả hơn một chút
const LETTER_G_CHAR_CODE = 71
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const aToGNames = names.filter(
  (name) => name.charCodeAt(0) <= LETTER_G_CHAR_CODE,
)

console.log(aToGNames)
// ['Aidan', 'Ben', 'David', 'Faraz']
0 theo sau là
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
55


const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler'] const uppercaseNames = names.map((name) => name.toLocaleUpperCase()) console.log(uppercaseNames) // ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']84

Cuối cùng, phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
84 tạo một mảng mới là bản sao nông của một phần của mảng từ chỉ mục
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
86 đã chỉ định cho đến (nhưng không bao gồm) chỉ mục
const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
87 tùy chọn

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
6

Tôi thường sử dụng

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
84 khi xây dựng logic cho giao diện người dùng kết quả tìm kiếm được phân trang

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
7

Phương thức

const names = ['Aidan', 'Ben', 'David', 'Faraz', 'Kyle', 'Jonathan', 'Tyler']
const uppercaseNames = names.map((name) => name.toLocaleUpperCase())

console.log(uppercaseNames)
// ['AIDAN', 'BEN', 'DAVID', 'FARAZ', 'KYLE', 'JONATHAN', 'TYLER']
84 cũng có thể được sử dụng để tạo một bản sao nông của một mảng

const urlsToFetch = [
  'https://swapi.dev/api/people/',
  'https://stats.nba.com/stats/playerindex',
  'https://api.github.com/users/benmvp/repos',
]
const fetchPromises = urlsToFetch.map((url) => fetchJson(url))

Promise.all(fetchPromises).then(
  ([starWarsPeople, nbaPlayers, myRepositories]) => {
    // Use fetched data
  },
)
8


Phù, thế là xong. 😅 Cho dù chúng ta đang thực hiện API hay giao diện người dùng trong JavaScript, thì các phương thức mảng không phá hủy này chắc chắn sẽ hữu ích. Khi tôi thao tác dữ liệu nặng, tôi thấy mình sử dụng tất cả chúng. Bạn sử dụng cái nào?

Là mối nối một phương pháp phá hoại?

Phương thức mảng mối nối (). Các. phương thức splice() là một phương thức mảng hủy diệt giúp sửa đổi mảng ban đầu và trả về (các) mục đã loại bỏ trong một mảng. Đối số đầu tiên trong phương thức mối nối chỉ ra chỉ mục trong mảng để bắt đầu thêm hoặc xóa các phần tử.

JavaScript có phá hoại lát cắt không?

slice() là một phương thức của Đối tượng mảng và Đối tượng chuỗi. Nó không phá hủy vì nó trả về một bản sao mới và nó không thay đổi nội dung của mảng đầu vào. slice() thường được sử dụng trong lập trình chức năng để tránh tác dụng phụ.

Cái nào tốt hơn lát hoặc nối?

Slice dùng để lấy một mảng mới từ mảng ban đầu trong khi splice dùng để thêm/xóa các phần tử trong mảng ban đầu . Các thay đổi không được phản ánh trong mảng ban đầu trong trường hợp lát cắt và trong mối nối, các thay đổi được phản ánh trong mảng ban đầu.

Độ phức tạp về thời gian của mối nối JavaScript là gì?

Vấn đề với mối nối là nó có độ phức tạp về thời gian O(n) trong trường hợp xấu nhất.