Ecmascript5 mendefinisikan dua metode penggabungan untuk array: reduksi () dan reduceright (). Kedua metode mengulangi item sewenang -wenang dari array dan kemudian membangun nilai yang dikembalikan akhir. Metode Dedike () dimulai dari item pertama dari array dan berulang kali melalui akhir array satu per satu. Metode reduceright () justru sebaliknya. Dimulai dari item terakhir dari array dan maju ke item pertama.
Kedua metode menerima dua parameter: fungsi yang dipanggil pada setiap item dan nilai awal sebagai dasar untuk penggabungan. Fungsi yang diteruskan untuk mengurangi () dan reduceright () menerima 4 parameter: nilai sebelumnya, nilai saat ini, indeks item, dan objek array. Nilai apa pun yang dikembalikan oleh fungsi ini akan secara otomatis diteruskan ke item berikutnya sebagai parameter pertama. Iterasi pertama terjadi pada istilah kedua array, sehingga parameter pertama adalah istilah pertama dari array, dan parameter kedua adalah istilah kedua dari array.
Misalnya, kita dapat menggunakan metode reduksi () untuk menemukan jumlah semua nilai dalam array.
var nums = [1,2,3,4,5]; var sum = nums.reduce (function (prev, cur, index, array) {retrun pre + cur;});Dalam kode di atas, pertama kali fungsi callback dieksekusi, prev adalah 1 dan CUR adalah 2. Kedua kalinya prev adalah 3 dan CUR adalah 3. Metode pengurangan () akan mengulangi proses ini sampai setiap item dalam array diakses sekali, dan akhirnya menetapkan hasil yang dikembalikan ke SUM.
Metode reduceright () mirip dengan kiri dan kanan, tetapi dieksekusi secara terbalik. Misalnya:
var nums = [1,2,3,4,5]; var sum = nums.reduceright (function (prev, cur, index, array) {retrun pre + cur;});Dalam contoh ini, pertama kali fungsi callback dieksekusi, Prev adalah 5 dan CUR adalah 4. Hasil jumlah akhir sama dengan metode pengurangan (), keduanya 15.
Browser yang mendukung pengurangan () dan reduceright () adalah: IE9+, Firefox3+, Safari4+, Opera10.5+dan Chrome.
Mengisi kembali
Ecmascript5 juga menambahkan 2 metode baru untuk menggabungkan array: reduping () dan reduceright ().
Keduanya beralih ke semua item dalam array
redukir (): Iterasi satu per satu dari item pertama hingga akhir.
reduceright (): Mulai dari item terakhir dari array, berulang kali ke item pertama array.
Kedua metode menerima dua parameter: fungsi yang dipanggil pada setiap item (parameter adalah: nilai sebelumnya, nilai saat ini, indeks item, objek array)
Nilai apa pun yang dikembalikan oleh fungsi ini akan secara otomatis diteruskan ke item berikutnya sebagai parameter pertama. Iterasi pertama terjadi pada item kedua array,
Oleh karena itu, parameter pertama adalah item pertama dari array, dan parameter kedua adalah item kedua dari array
dan sebagai nilai awal basis gabungan.
Gunakan metode reduksi () untuk melakukan jumlah semua nilai dalam array, seperti:
nilai var = [1, 2, 3, 4, 5]; var sum = values.reduce (function (prev, cur, index, array) {return prev + cur;}); peringatan (jumlah); // Hasilnya sama, tetapi arahnya adalah var sum2 = value.reduceright (function (prev, cur, index, array) {return prev+cur;}); waspada (sum2);Gabungan Gabungan adalah algoritma penyortiran yang efektif berdasarkan operasi penggabungan. Algoritma ini adalah aplikasi pembagian dan penaklukan yang sangat khas.
Gabungkan metode penyortiran adalah untuk menggabungkan dua (atau lebih dari dua) tabel yang dipesan ke dalam tabel yang dipesan baru, yaitu membagi urutan yang akan diurutkan menjadi beberapa setelah, masing -masing setelah dipesan. Kemudian yang dipesan berikutnya digabungkan ke dalam urutan yang dipesan secara keseluruhan.
Gabungan penyortiran adalah algoritma penyortiran yang efektif berdasarkan operasi penggabungan. Algoritma ini adalah aplikasi pembagian dan penaklukan yang sangat khas. Gabungkan yang diperintahkan berikutnya untuk mendapatkan urutan yang sepenuhnya diperintahkan; Artinya, buat setiap urutan pertama urutan, dan kemudian buat urutan segmen selanjutnya. Jika dua tabel yang dipesan digabungkan menjadi satu meja yang dipesan, itu disebut gabungan 2 arah.