Cara menggunakan ARRAY.PROTOTYPE.SORT pada JavaScript

Salah satu pilar pemrograman fungsional adalah penggunaan khusus daftar dan operasi daftar. Dan hal-hal itu persis seperti apa terdengarnya: array dari berbagai hal, dan hal-hal yang kamu lakukan kepadanya. Tetapi pola pikir fungsional memperlakukannya sedikit berbeda dari yang kamu duga.

Artikel ini akan melihat lebih dekat pada apa yang saya suka sebut operasi daftar "big three":

var tasks = [
43,
var tasks = [
44, dan
var tasks = [
45. Membungkus kepalamu di sekitar ketiga fungsi ini merupakan langkah penting untuk dapat menulis kode fungsional yang bersih, dan membuka pintu bagi teknik pemrograman fungsional dan reaktif yang sangat kuat.

Ini juga berarti kamu tidak perlu menulis perulangan

var tasks = [
46 lagi.

Ingin tahu? Mari kita selami.

Peta Dari Daftar ke Daftar

Seringkali, kita menemukan diri kita perlu mengambil array dan memodifikasi setiap elemen di dalamnya dengan cara yang persis sama. Contoh-contoh yang umum adalah mengkuadratkan setiap elemen dalam array angka, mengambil nama dari daftar pengguna, atau menjalankan regex pada suatu array string.

var tasks = [
43 adalah metode yang dibuat untuk melakukan hal itu. Ini didefinisikan pada
var tasks = [
48, sehingga kamu dapat memanggilnya di array apa pun, dan ia menerima callback sebagai argumen pertamanya.

Ketika kamu memanggil

var tasks = [
43 pada suatu array, ia akan menjalankan callback tersebut pada setiap elemen di dalamnya, mengembalikan sebuah array baru dengan semua nilai yang dikembalikan oleh callback.

Pada dasarnya,

var tasks = [
43 meneruskan tiga argumen ke callback-mu:

  1. Item saat ini di dalam array
  2. Indeks array dari item saat ini
  3. Seluruh array yang kamu sebut map

Mari kita lihat beberapa kode.

var tasks = [ 43 dalam Prakteknya

Misalkan kita memiliki aplikasi yang mengelola berbagai tugasmu untuk hari itu. Setiap

var tasks = [
52 adalah objek, masing-masing dengan properti
var tasks = [
53 dan
var tasks = [
54:

1
// Durations are in minutes

2
3
var tasks = [
4
5
  {
6
7
// Durations are in minutes

0
// Durations are in minutes

1
// Durations are in minutes

2
// Durations are in minutes

3
// Durations are in minutes

4
// Durations are in minutes

5
// Durations are in minutes

6
// Durations are in minutes

7
// Durations are in minutes

8
  {
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
// Durations are in minutes

6
2
9
3
0
  {
3
2
3
3
3
4
3
5
3
6
3
7
3
8
3
9
var tasks = [
0
var tasks = [
1
var tasks = [
2
var tasks = [
3

Katakanlah kita ingin membuat array baru hanya dengan nama setiap tugas, sehingga kita dapat melihat semua yang telah kita selesaikan hari ini. Dengan menggunakan perulangan 

var tasks = [
46, kita akan menulis sesuatu seperti ini:

1
var tasks = [
5
2
3
var tasks = [
8
4
5
4
1
6
7
4
4

JavaScript juga menawarkan perulangan

var tasks = [
56. Ini berfungsi seperti perulangan
var tasks = [
46, tetapi mengatur semua messiness memeriksa indeks perulangan kita terhadap panjang array untuk kita:

1
4
6
2
3
4
9
4
5
5
2
6
5
4
7
5
6

Dengan menggunakan 

var tasks = [
43, kita bisa menulis:

1
5
8
2
3
  {
1
4
5
  {
4

Saya menyertakan parmeter

var tasks = [
59 dan
var tasks = [
60 untuk mengingatkanmu bahwa mereka ada di sana jika kamu membutuhkannya. Karena saya tidak menggunakannya di sini, kamu bisa meninggalkannya, dan kode itu akan berjalan dengan baik.

Ada beberapa perbedaan penting antara dua pendekatan tersebut:

  1. Dengan menggunakan
    var tasks = [
    
    43, kamu tidak perlu mengelola keadaan perulangan
    var tasks = [
    
    46 mu sendiri.
  2. Kamu dapat mengoperasikan elemen secara langsung, daripada harus mengindeks ke dalam array.
  3. Kamu tidak perlu membuat array baru dan melakukan
    var tasks = [
    
    63 padanya.
    var tasks = [
    
    43 mengembalikan semua produk jadi sekaligus, jadi kita dapat dengan mudah menetapkan nilai kembalian ke variabel baru.
  4. Kamu harus ingat untuk memasukkan pernyataan
    var tasks = [
    
    65 di callback-mu. Jika tidak, kamu akan mendapatkan array baru yang diisi dengan
    var tasks = [
    
    66.

Menghasilkan, semua fungsi yang akan kita lihat hari ini pada bagian karakteristik tersebut.

Fakta bahwa kita tidak harus mengelola keadaan perulangan secara manual membuat kode kita lebih sederhana dan lebih mudah dipelihara. Fakta bahwa kita dapat beroperasi secara langsung pada elemen daripada harus mengindeks ke dalam array membuat hal-hal lebih mudah dibaca.

Menggunakan perulangan

var tasks = [
56 memecahkan kedua masalah ini untuk kita. Tetapi
var tasks = [
43 masih memiliki setidaknya dua keuntungan berbeda:

  1. var tasks = [
    
    56 mengembalikan
    var tasks = [
    
    66, sehingga tidak bertautan dengan metode array lainnya.
    var tasks = [
    
    43 mengembalikan array, sehingga kamu bisa menautkannya dengan metode array lainnya.
  2. var tasks = [
    
    43 mengembalikan array dengan produk jadi, daripada meminta kita untuk mem-mutasi array di dalam perulangan.

Menjaga jumlah tempat di mana kamu mengubah keadaan ke minimum absolut adalah prinsip penting dari pemrograman fungsional. Itu membuat kode lebih aman dan lebih dimengerti.

Sekarang juga saat yang tepat untuk menunjukkan bahwa jika kamu berada di Node, mengetes contoh ini di konsol browser Firefox, atau menggunakan Babel atau Traceur, kamu dapat menulis ini lebih singkat dengan fungsi panah ES6:

1
  {
6

Fungsi panah membiarkan kita meninggalkan kata kunci

var tasks = [
65 dalam satu baris.

Itu tidak jauh lebih mudah dibaca daripada itu.

Gotcha

Callback yang kamu teruskan ke

var tasks = [
43 harus memiliki pernyataan
var tasks = [
65 eksplisit, atau
var tasks = [
43 akan memuntahkan array yang dengan dengan
var tasks = [
66. Tidak sulit untuk mengingat memasukkan suatu nilai
var tasks = [
65, tetapi itu tidak sulit untuk dilupakan.

Jika kamu lupa,

var tasks = [
43 tidak akan mengeluh. Sebaliknya, itu akan diam-diam mengembalikan array penuh dengan kekosongan. Error yang senyap seperti itu dapat sangat sulit untuk didebug.

Untungnya, ini adalah satu-satunya gotcha dengan

var tasks = [
43. Tapi itu adalah perangkap yang cukup umum yang harus saya tekankan: Selalu pastikan callback-mu berisi pernyataan
var tasks = [
65!

Implementasi

Membaca implementasi adalah bagian penting dari pemahaman. Jadi, mari tulis

var tasks = [
43 ringan kita sendiri untuk lebih memahami apa yang terjadi pada dasarnya. Jika kamu ingin melihat implementasi kualitas produksi, periksa Mozilla polyfill di MDN.

1
  {
8
2
3
6
1
4
5
6
4
6
6
6
7
6
8
// Durations are in minutes

1
// Durations are in minutes

2
7
1
// Durations are in minutes

4
// Durations are in minutes

5
7
4
// Durations are in minutes

7
// Durations are in minutes

8
7
7
2
0
2
1
// Durations are in minutes

00
2
3
2
4
  {
4

Kode ini menerima array dan fungsi callback sebagai argumen. Ini kemudian membuat array baru; menjalankan callback pada setiap elemen pada array yang kita teruskan; mendorong hasil ke dalam array baru; dan mengembalikan array baru. Jika kamu menjalankan ini di konsolmu, kamu akan mendapatkan hasil yang sama seperti sebelumnya. Pastikan kamu menginisialisasi

var tasks = [
83 sebelum kamu mengetesnya!

Meskipun kkita menggunakan perulangan for pada dasarnya, membungkusnya ke dalam fungsi menyembunyikan detail dan memungkinkan kita bekerja dengan abstraksi sebagai gantinya.

Itu membuat kode kita lebih bersifat deklaratif—ia mengatakan apa yang harus dilakukan, bukan bagaimana melakukannya. Kamu akan menghargai betapa kodemu ini dibuat lebih mudah dibaca, dipelihara, dan, erm, mudah di-debug.

Menyaring Kebisingan

Selanjutnya dari operasi array kita adalah

var tasks = [
44. Itu persis seperti apa terdengar: Dibutuhkan suatu array, dan menyaring elemen yang tidak diinginkan.

Seperti

var tasks = [
43,
var tasks = [
44 didefinisikan pada
var tasks = [
48. Ini tersedia di berbagai array, dan kamu memberikannya callback sebagai argumen pertama.
var tasks = [
44 mengeksekusi callback itu pada setiap elemen dari array, dan memunculkan array baru yang hanya berisi elemen-elemen di mana callback itu mengembalikan nilai
var tasks = [
89.

Juga seperti

var tasks = [
43,
var tasks = [
44 meneruskan tiga argumen callback-mu:

  1. Item saat ini
  2. Indeks saat ini
  3. Array yang kamu sebut
    var tasks = [
    
    44

var tasks = [ 44 dalam Prakteknya

Mari kita lihat kembali contoh tugas kita. Daripada menarik nama setiap tugas, katakanlah saya ingin mendapatkan daftar tugas yang membutuhkan waktu dua jam atau lebih untuk menyelesaikannya.

Dengan menggunakan

var tasks = [
56, kita akan menulis:

1
// Durations are in minutes

05
2
3
// Durations are in minutes

08
4
// Durations are in minutes

10
5
// Durations are in minutes

12
6
// Durations are in minutes

14
7
  {
4

Dengan

var tasks = [
44:

1
// Durations are in minutes

18
2
// Durations are in minutes

20
3
  {
4
4
5
// Durations are in minutes

25
6
// Durations are in minutes

27

Di sini, saya telah melanjutkan dan meninggalkan argumen

var tasks = [
59 dan
var tasks = [
60 ke callback kita, karena kita tidak menggunakannya.

Sama seperti

var tasks = [
43,
var tasks = [
44 memungkinkan kita:

  • menghindari mutasi array di dalam perulangan 
    var tasks = [
    
    56 atau
    var tasks = [
    
    46
  • menetapkan hasilnya langsung ke variabel baru, daripada mendorong ke dalam array yang kita tentukan di tempat lain

Gotcha

Callback yang kamu berikan ke

var tasks = [
43 harus menyertakan pernyataan return jika kamu ingin berfungsi dengan benar. Dengan
var tasks = [
44, kamu juga harus menyertakan pernyataan pengembalian, dan kamu harus memastikannya mengembalikan nilai boolean.

Jika kamu lupa pernyataan return, callback-mu akan mengembalikan

var tasks = [
66, yang mana
var tasks = [
44 tidak akan membantu dengan paksa ke
4
06. Daripada melemparkan error, itu akan secara senyap mengembalikan array kosong!

Jika kamu menuju ke rute lain, dan mengembalikan sesuatu yang tidak secara eksplisit

var tasks = [
89 atau
4
06, kemudian
var tasks = [
44 akan mencoba untuk mencari tahu apa yang kamu maksud dengan menerapkan aturan paksaan JavaScript. Lebih sering daripada tidak, ini adalah bug. Dan, seperti melupakan pernyataan return-mu, itu akan menjadi pernyataan senyap.

Selalu pastikan callbackmu menyertakan pernyataan return eksplisit. Dan selalu pastikan callback-mu di

var tasks = [
44 kembali mengembalikan nilai
var tasks = [
89 atau
4
06. Kewarasanmu akan berterima kasih.

Implementasi

Sekali lagi, cara terbaik untuk memahami sepotong kode adalah ... yah, dengan menulisnya. Mari kita gulirkan

var tasks = [
44 ringan kita sendiri. Orang-orang baik di Mozilla memiliki polyfill kekuatan industri untuk kamu baca juga.

1
// Durations are in minutes

29
2
3
// Durations are in minutes

32
4
5
6
4
6
// Durations are in minutes

37
7
// Durations are in minutes

39
// Durations are in minutes

1
// Durations are in minutes

41
// Durations are in minutes

2
6
8
// Durations are in minutes

4
// Durations are in minutes

5
// Durations are in minutes

46
// Durations are in minutes

7
// Durations are in minutes

8
7
4

Mengurangi Array

var tasks = [
43 membuat array baru dengan mengubah setiap elemen dalam array, secara terpisah.
var tasks = [
44 membuat array baru dengan menghapus elemen yang bukan miliknya.
var tasks = [
45, di sisi lain, mengambil semua elemen dalam array, dan menguranginya menjadi satu nilai.

Sama seperti

var tasks = [
43 dan
var tasks = [
44,
var tasks = [
45 didefinisikan pada
var tasks = [
48 dan tersedia di array apa pun, dan kamu meneruskan callback sebagai argumen pertama. Tetapi ini juga membutuhkan argumen kedua yang opsional: nilai untuk mulai menggabungkan semua elemen array-mu ke dalamnya.

var tasks = [
45 meneruskan empat argumen callback-mu:

  1. Nilai saat ini
  2. Nilai sebelumnya
  3. Indeks saat ini
  4. Array yang kamu sebut
    var tasks = [
    
    45

Perhatikan bahwa callback mendapat nilai sebelumnya pada setiap perulangan. Pada perulangan pertama, tidak ada nilai sebelumnya. Inilah sebabnya mengapa kamu memiliki pilihan untuk meneruskan

var tasks = [
45 suatu nilai awal: Ini bertindak sebagai "nilai sebelumnya" untuk perulangan pertama, ketika tidak ada yang akan menjadi yang pertama.

Akhirnya, ingatlah bahwa

var tasks = [
45 mengembalikan nilai tunggal, bukan array yang berisi satu item. Hal ini lebih penting daripada yang terlihat, dan saya akan kembali ke contohnya.

var tasks = [ 45 dalam Prakteknya

Karena

var tasks = [
45 adalah fungsi yang orang-orang temukan sebagai yang paling asing pada awalnya, kita akan mulai dengan berjalan selangkah demi selangkah melalui sesuatu yang sederhana.

Katakanlah kita ingin mencari jumlah daftar angka. Menggunakan perulangan, itu terlihat seperti ini:

1
// Durations are in minutes

51
2
// Durations are in minutes

53
3
5
4
4
// Durations are in minutes

57
5
// Durations are in minutes

59
6
  {
4

Meskipun ini bukan kasus penggunaan yang buruk untuk

var tasks = [
56,
var tasks = [
45 masih memiliki keuntungan yang memungkinkan kita untuk menghindari mutasi. Dengan
var tasks = [
45, kita akan menulis:

1
// Durations are in minutes

63
2
// Durations are in minutes

65
3
// Durations are in minutes

67

Pertama, kita memanggil 

var tasks = [
45 pada daftar
4
31 kita. Kita memberikannya callback, yang menerima nilai sebelumnya dan nilai saat ini sebagai argumen, dan mengembalikan hasil penambahannya bersamaan. Karena kita meneruskan
4
32 sebagai argumen kedua untuk melakukan
var tasks = [
45, itu akan digunakan sebagai nilai
4
34 (sebelumnya) pada perulangan pertama.

Jika kita selangkah demi selangkah, tampilannya seperti ini:

PerulanganSebelumnyaSaat iniTotal10112123333646410510515

Jika kamu bukan penggemar tabel, jalankan cuplikan ini di konsol:

1
// Durations are in minutes

69
2
// Durations are in minutes

71
3
// Durations are in minutes

73
4
// Durations are in minutes

75
5
// Durations are in minutes

77
6
// Durations are in minutes

79
7
// Durations are in minutes

67
// Durations are in minutes

1
// Durations are in minutes

2
// Durations are in minutes

84

Ringkasnya:

var tasks = [
45 melakukan perulangan atas semua elemen array, menggabungkan mereka namun kamu tentukan di callback-mu. Pada setiap iterasi, callback-mu memiliki akses ke nilai sebelumnya, yang merupakan total-sejauh-ini, atau nilai akumulasi; nilai saat ini; indeks saat ini; dan seluruh array, jika kamu membutuhkannya.

Mari kita kembali ke contoh tugas kita. Kita telah mendapatkan daftar nama tugas dari

var tasks = [
43, dan daftar tugas yang difilter yang memakan waktu lama dengan ... yah,
var tasks = [
44.

Bagaimana jika kita ingin mengetahui jumlah total waktu yang kita habiskan bekerja hari ini?

Menggunakan perulangan

var tasks = [
56, kamu akan menulis:

1
// Durations are in minutes

86
2
5
4
3
4
9
4
// Durations are in minutes

92
5
// Durations are in minutes

94
6
// Durations are in minutes

96
7
5
6

Dengan

var tasks = [
45, itu menjadi:

1
2
00
2
2
02
3
2
04
4
5
2
07
6
2
09

Mudah.

Itu hampir seluruh yang ada untuk hal itu. Hampir, karena JavaScript memberi kita satu metode yang lebih sedikit diketahui, yang disebut

4
40. Dalam contoh di atas,
var tasks = [
45 mulai pada item pertama dalam array, perulangan dari kiri ke kanan:

1
2
11
2
2
13
3
2
15
4
  {
4
5
6
2
20

4
40 melakukan hal yang sama, tetapi dalam arah yang berlawanan:

1
2
22
2
2
24
3
2
26
4
5
6
5
6
2
31

Saya menggunakan

var tasks = [
45 setiap hari, tetapi saya tidak pernah membutuhkan
4
40. Saya rasa kamu mungkin tidak akan melakukannya juga. Tetapi jika kamu pernah melakukannya, sekarang kamu tahu itu ada di sana.

Gotcha

Tiga gotcha ​​besar dengan

var tasks = [
45 adalah:

  1. Lupa untuk melakukan
    var tasks = [
    
    65
  2. Melupakan nilai awal
  3. Mengharapkan array saat
    var tasks = [
    
    45 mengembalikan satu nilai

Untungnya, dua yang pertama mudah dihindari. Memutuskan apa nilai awalmu harus bergantung pada apa yang kamu lakukan, tetapi kamu akan cepat menguasainya.

Yang terakhir mungkin tampak agak aneh. Jika

var tasks = [
45 hanya akan mengembalikan nilai tunggal, mengapa kamu mengharapkan sebuah array?

Ada beberapa alasan bagus untuk itu. Pertama,

var tasks = [
45 selalu mengembalikan nilai tunggal, tidak selalu angka tunggal. Jika kamu mengurangi suatu array pada array-array, misalnya, ia akan mengembalikan array tunggal. Jika kamu dalam kebiasaan atau mengurangi array, akan adil untuk mengharapkan bahwa array yang berisi satu item tidak akan menjadi kasus khusus.

Kedua, jika

var tasks = [
45 memang mengembalikan array dengan nilai tunggal, itu akan secara alami berjalan bagus dengan
var tasks = [
43 dan
var tasks = [
44, dan fungsi lain pada array yang mungkin kamu gunakan dengannya.

Implementasi

Saatnya untuk tampilan terakhir kita pada dasarnya. Seperti biasa, Mozilla memiliki polyfill antipeluru untuk reduce jika kamu ingin memeriksanya.

1
2
33
2
2
35
3
5
4
4
2
39
5
2
41
6
6
8
7
5
4
// Durations are in minutes

1
2
47
// Durations are in minutes

2
7
4

Dua hal yang perlu diperhatikan di sini:

  1. Kali ini, saya menggunakan nama
    4
    53 daripada 
    4
    34. Ini adalah apa yang biasanya kamu lihat di alam liar.
  2. Saya menetapkan
    4
    53 sebagai nilai awal, jika pengguna menyediakannya, dan default-nya ke
    4
    32, jika tidak. Ini adalah bagaimana
    var tasks = [
    
    45 yang nyata berperilaku, juga.

Menggunakannya bersamaan: Map, Filter, Reduce, dan Chainability

Pada titik ini, kamu mungkin tidak begitu terkesan.

Cukup adil:

var tasks = [
43,
var tasks = [
44, dan
var tasks = [
45, dengan sendirinya, tidak terlalu menarik.

Setelah semua, kekuatan sejati mereka terletak pada keterkaitan mereka.

Katakanlah saya ingin melakukan hal berikut:

  1. Mengumpulkan tugas selama dua hari.
  2. Mengonversi durasi tugas ke jam, bukan menit.
  3. Memfilter semua yang membutuhkan waktu dua jam atau lebih.
  4. Menjumlahkan semuanya.
  5. Mengalikan hasilnya dengan tarif per jam untuk penagihan.
  6. Menghasilkan output jumlah dolar yang diformat.

Pertama, mari tentukan tugas-tugas kita untuk hari Senin dan Selasa:

1
2
51
2
2
53
3
2
55
4
2
57
5
2
59
6
2
53
7
2
63
// Durations are in minutes

1
2
65
// Durations are in minutes

2
// Durations are in minutes

41
// Durations are in minutes

4
2
69
// Durations are in minutes

5
// Durations are in minutes

7
2
72
// Durations are in minutes

8
2
53
2
0
2
76
2
1
2
78
2
3
2
59
2
4
2
53
2
6
2
84
2
7
2
57
2
9
2
59
3
0
2
53
3
2
2
92
3
3
2
94
3
5
// Durations are in minutes

41
3
6
2
69
3
8
5
4
3
9
3
02

Dan sekarang, transformasi kita yang indah:

1
3
04
2
3
06
3
3
08
4
3
10
5
3
12
6
3
14
7
3
16
// Durations are in minutes

1
3
18
// Durations are in minutes

2
3
20
// Durations are in minutes

4
3
22
// Durations are in minutes

5
3
24
// Durations are in minutes

7
3
26
// Durations are in minutes

8
3
28
2
0
3
30
2
1
3
32

Atau, lebih ringkas:

1
3
34
2
3
36
3
3
38
4
3
40
5
3
42
6
3
44
7
3
46
// Durations are in minutes

1
3
48
// Durations are in minutes

2
3
50
// Durations are in minutes

4
3
52
// Durations are in minutes

5
3
54
// Durations are in minutes

7
3
56
// Durations are in minutes

8
3
58
2
0
3
60

Jika kamu sudah sampai sejauh ini, ini seharusnya cukup mudah. Ada dua sedikit keanehan yang bisa dijelaskan.

Pertama, pada baris 10, saya seharusnya menulis:

1
3
62
2
3
64
3
3
66
4
3
68

Dua hal yang perlu dijelaskan di sini:

  1. Tanda plus di depan
    4
    53 dan
    4
    62 memaksakan nilai-nilainya ke angka. Jika kamu tidak melakukan ini, nilai kembalian akan menjadi string yang agak tidak berguna,
    4
    63.
  2. Jika tidak membungkus jumlah itu dalam tanda kurung,
    var tasks = [
    
    45 akan memuntahkan nilai tunggal, bukan array. Itu akan berakhir dengan melempar
    4
    65, karena kamu hanya dapat menggunakan
    var tasks = [
    
    43 pada array!

Bit kedua yang mungkin membuatmu sedikit tidak nyaman adalah

var tasks = [
45 yang terakhir, yaitu:

1
3
62
2
3
72
3
3
74
4
3
76
5
3
78
6
  {
4

Itu memanggil

var tasks = [
43 untuk mengembalikan array yang berisi nilai tunggal. Di sini, kita memanggil
var tasks = [
45 untuk menarik keluar nilai itu.

Cara lain untuk melakukan ini adalah dengan menghapus panggilan untuk mengurangi, dan mengindeks ke dalam array yang memuntahkan

var tasks = [
43:

1
3
82
2
3
84
3
3
86
4
3
88
5
3
90
6
3
92
7
3
94
// Durations are in minutes

1
3
96
// Durations are in minutes

2
3
98
// Durations are in minutes

4
var tasks = [
00
// Durations are in minutes

5
var tasks = [
02
// Durations are in minutes

7
var tasks = [
04
// Durations are in minutes

8
var tasks = [
06

Itu sangat benar. Jika kamu lebih nyaman menggunakan indeks array, silakan saja.

Tetapi saya mendorongmu untuk tidak melakukannya. Salah satu cara paling ampuh untuk menggunakan fungsi-fungsi ini adalah dalam bidang pemrograman reaktif, di mana kamu tidak akan bebas menggunakan indeks array. Menendang kebiasaan itu sekarang akan membuat teknik belajar reaktif jauh lebih mudah dalam keseluruhannya.

Akhirnya, mari kita lihat bagaimana teman kita perulangan

var tasks = [
56 akan menyelesaikannya:

1
var tasks = [
08
2
var tasks = [
10
3
var tasks = [
12
4
var tasks = [
14
5
var tasks = [
16
6
7
var tasks = [
19
// Durations are in minutes

1
var tasks = [
21
// Durations are in minutes

2
5
4
// Durations are in minutes

4
var tasks = [
25
// Durations are in minutes

5
var tasks = [
27
// Durations are in minutes

7
var tasks = [
29
// Durations are in minutes

8
5
6
2
0
2
1
var tasks = [
34
2
3
var tasks = [
36
2
4
5
6
2
6
2
7
2
9
var tasks = [
42

Ditoleransi, tetapi ramai.

Kesimpulan & Langkah Berikutnya

Pada tutorial ini, kamu telah belajar bagaimana

var tasks = [
43,
var tasks = [
44, dan
var tasks = [
45 bekerja; bagaimana cara menggunakannya; dan kira-kira bagaimana mereka diimplementasikan. Kamu telah melihat bahwa mereka semua memungkinkanmu untuk menghindari keadaan mutasi, yang mengharuskan penggunaan perulangan
var tasks = [
46 dan
4
76, dan kamu sekarang seharusnya memiliki gagasan yang baik tentang bagaimana untuk menyatukan mereka semua.

Sekarang, saya yakin kamu ingin berlatih dan membaca lebih lanjut. Berikut adalah tiga saran utama saya untuk ke mana harus menuju selanjutnya:

  1. Latihan yang luar biasa dari Jafar Husain tentang Pemrograman Fungsional dalam JavaScript, lengkap dengan pengenalan yang solid untuk Rx.js
  2. Pengajar Kursus Envato Tuts+ Jason Rhodes tentang Pemrograman Fungsional dalam JavaScript
  3. Panduan Yang Paling Memadai untuk Pemrograman Fungsional, yang lebih mendalam tentang mengapa kita menghindari mutasi, dan pemikiran fungsional secara umum

JavaScript telah menjadi salah satu bahasa de-facto yang bekerja di web. Bukan tanpa alur pembelajaran, dan ada banyak framework dan library untuk membuatmu sibuk juga. Jika kamu mencari sumber daya tambahan untuk dipelajari atau digunakan dalam pekerjaanmu, periksa apa yang kami miliki di Envato marketplace.

Jika kamu ingin lebih banyak tentang hal semacam ini, cek profil saya dari waktu ke waktu; tangkap saya di Twitter (@PelekeS); atau klik blog saya di http://peleke.me.

Pertanyaan, komentar, atau kebingungan? Biarkan mereka di bawah, dan saya akan melakukan yang terbaik untuk kembali ke masing-masing secara individual.