Bagian dari Menggarisbawahi terinspirasi oleh atau dipinjam dari Oliver Steele Fungsional, Prototype.js dan John Resig Micro-Templating.
Dukungan pemrograman fungsional ditambahkan, tapi tanpa memperluas salah satu built-in JavaScript objek.
Garis bawah menyediakan fungsi 60-aneh yang mendukung kedua tersangka fungsional yang biasa: peta, pilih, memanggil & mdash; serta pembantu yang lebih khusus: fungsi mengikat, JavaScript template, pengujian kesetaraan dalam, dan sebagainya. Hal delegasi untuk built-in fungsi, jika ada, browser jadi modern akan menggunakan implementasi asli forEach, peta, mengurangi, filter, setiap, beberapa dan indexOf.
Port dari Underscore.js tersedia untuk:
PHP
Ular sanca
Perl
Apa yang baru dalam rilis ini:
- Menambahkan metode _.create, sebagai slimmed turun versi Object.create.
- Bekerja di sekitar bug iOS yang tidak benar dapat menyebabkan isArrayLike menjadi JIT-ed. Juga perbaikan bug ketika melewati 0 sampai isArrayLike.
Apa yang baru di versi 1.8.2:
- Perbaikan / perubahan beberapa lama Internet Explorer-dan terkait perilaku kasus tepi.
Apa yang baru di versi 1.7.0:
- Untuk konsistensi dan kecepatan di browser, Menggarisbawahi sekarang mengabaikan metode array yang asli untuk forEach, peta, mengurangi, reduceRight, filter, setiap, beberapa, indexOf, dan lastIndexOf. & Quot; Jarang & quot; array resmi mati di Menggarisbawahi.
- Ditambahkan _.iteratee untuk menyesuaikan iterator digunakan oleh fungsi koleksi. Banyak metode Menggarisbawahi akan mengambil argumen string untuk lebih mudah _.property bergaya pencarian, obyek untuk _.where gaya filtering, atau fungsi sebagai callback kustom.
- Ditambahkan _.before sebagai mitra untuk _.after.
- Ditambahkan _.negate untuk membalikkan nilai kebenaran predikat lulus-in.
- Ditambahkan _.noop sebagai kosong fungsi pengganti berguna.
- _. IsEmpty sekarang bekerja dengan argumen objek.
- _. Kini telah penjaga terhadap benda nullish.
- metode dasar Override seperti masing-masing dan beberapa dan mereka akan digunakan secara internal oleh fungsi Menggarisbawahi lain juga.
- Fungsi escape menangani backticks (`), berurusan dengan IE ≤ 8 bug.
- Untuk konsistensi, _.union dan _.difference sekarang hanya bekerja dengan array dan tidak args variadic.
- _. Memoize mengekspos cache nilai memoized sebagai properti pada fungsi kembali.
- _. Pick menerima iteratee dan argumen konteks untuk callback lebih maju.
- Menggarisbawahi template tidak lagi menerima sebuah objek data awal. _.template selalu mengembalikan fungsi sekarang.
Apa yang baru di versi 1.5.0:
- Sebuah peta sumber sekarang disediakan untuk debugging lebih mudah membangun produksi minified dari Menggarisbawahi.
- Default fungsi kini hanya menimpa nilai undefined, yang tidak nol.
- Dihapus kemampuan untuk memanggil _.bindAll tanpa nama metode argumen. Hal ini cukup banyak selalu bijaksana untuk putih-daftar nama-nama metode yang ingin Anda mengikat.
- Dihapus kemampuan untuk memanggil _.after dengan jumlah doa dari nol. Jumlah minimum panggilan adalah (alami) sekarang 1.
Apa yang baru di versi 1.4.4:
- Ditambahkan _.findWhere, untuk menemukan elemen pertama dalam daftar yang cocok dengan set tertentu dari kunci dan nilai-nilai.
- Ditambahkan _.partial, untuk menerapkan fungsi sebagian tanpa mengubah referensi yang dinamis untuk ini.
- Sederhana mengikat dengan menghapus beberapa kasus tepi yang melibatkan fungsi konstruktor. Singkatnya:. Tidak _.bind konstruktor Anda
- Sebuah optimasi kecil untuk memohon.
- bug Fix dalam versi minified karena minifier secara tidak benar mengoptimalkan-jauh isFunction.
Apa yang baru di versi 1.4.3:
- Ditambahkan iterator _.identity default countBy dan GroupBy.
- Fungsi uniq sekarang dapat mengambil array, iterator, konteks sebagai daftar argumen.
- Waktu berfungsi sekarang kembali array dipetakan dari hasil iterator.
- Sederhana dan bug di throttle.
Apa yang baru di versi 1.4.2:
- Untuk kompatibilitas mundur, kembali ke pra-1.4. 0 perilaku ketika melewati nol untuk fungsi iterasi. Mereka sekarang menjadi tidak-ops lagi.
Apa yang baru di versi 1.4.0:
- Ditambahkan fungsi pasang, untuk mengubah objek JavaScript ke [kunci, nilai] pasang ... serta fungsi objek, untuk mengubah array [kunci, nilai] pasangan menjadi obyek.
- Ditambahkan fungsi countBy, untuk menghitung jumlah objek dalam daftar yang cocok dengan kriteria tertentu.
- Ditambahkan fungsi invert, untuk melakukan inversi sederhana dari kunci dan nilai-nilai dalam suatu objek.
- Ditambahkan mana fungsi, untuk memudahkan kasus penyaringan daftar untuk objek dengan nilai-nilai tertentu.
- Ditambahkan fungsi omit, untuk menyaring objek untuk menghapus kunci tertentu.
- Ditambahkan fungsi acak, untuk kembali nomor acak dalam rentang tertentu.
- _. Fungsi debounce'd sekarang kembali nilai terakhir mereka diperbarui, seperti fungsi _.throttle'd lakukan.
- Fungsi sortBy sekarang berjalan algoritma semacam stabil.
- Ditambahkan pilihan fromIndex opsional untuk indexOf dan lastIndexOf.
- & quot; Jarang & quot; array tidak lagi didukung fungsi iterasi Menggarisbawahi. Gunakan untuk sebaliknya (atau lebih baik lagi, obyek).
- min dan max fungsi mungkin sekarang disebut pada array yang sangat besar.
- interpolasi di template sekarang mewakili nol dan terdefinisi sebagai string kosong.
Apa yang baru di versi 1.3.2:
- Ditambahkan fungsi pick, yang memungkinkan Anda untuk menyaring sebuah objek literal dengan whitelist nama properti diperbolehkan.
- Ditambahkan fungsi hasil, untuk kenyamanan ketika bekerja dengan API yang memungkinkan baik fungsi atau properti baku.
- Ditambahkan fungsi isFinite, karena kadang-kadang mengetahui bahwa nilai adalah angka saja tidak cukup.
- Fungsi sortBy mungkin sekarang juga melewati nama string properti untuk digunakan sebagai urutan pada setiap objek.
- uniq tetap bekerja dengan array jarang.
- Fungsi Perbedaan sekarang melakukan dangkal yang meratakan bukannya dalam satu ketika menghitung perbedaan array.
- Fungsi menghilangkan bounce sekarang mengambil parameter langsung, yang akan menyebabkan callback untuk api pada bukannya terkemuka trailing edge.
Apa yang baru di versi 1.3.1:
- Ditambahkan fungsi _.has, sebagai aman cara untuk menggunakan hasOwnProperty.
- Ditambahkan _.collect sebagai alias untuk _.map. Smalltalkers, bersukacita.
- Dikembalikan perubahan tua sehingga _.extend yang benar akan menyalin kunci dengan nilai-nilai terdefinisi lagi.
- Bugfix berhenti melarikan diri garis miring dalam interpolasi di _.template.
Apa yang baru di versi 1.3.0:.
- Dihapus AMD (RequireJS) dukungan dari Menggarisbawahi
Apa yang baru di versi 1.2.4:
- Bisa (dan mungkin harus) menulis _.chain (daftar) bukan _ (daftar) .chain ().
- Fix untuk karakter melarikan diri di Menggarisbawahi template, dan untuk mendukung kustomisasi dari _.templateSettings yang hanya mendefinisikan satu atau dua regexes yang diperlukan.
- Fix untuk melewati array sebagai argumen pertama untuk fungsi _.wrap'd.
- Peningkatan kompatibilitas dengan ClojureScript, yang menambahkan fungsi panggilan untuk String.prototype.
Apa yang baru di versi 1.2.3:
- lingkup dinamis sekarang diawetkan untuk dikompilasi _.template fungsi, sehingga Anda dapat menggunakan nilai ini jika Anda suka.
- dukungan berbagai Jarang dari _.indexOf, _.lastIndexOf .
- Kedua _.reduce dan _.reduceRight sekarang dapat melewati nilai eksplisit terdefinisi.
Apa yang baru di versi 1.2.2:
- tweak Terus _.isEqual semantik. Sekarang JS primitif dianggap setara dengan versi mereka dibungkus, dan array dibandingkan dengan sifat numerik mereka saja.
- _. Melarikan diri tidak lagi mencoba untuk menjadi pintar tentang tidak ganda melarikan diri entitas HTML yang sudah lolos. Sekarang hanya lolos terlepas.
- Dalam _.template, Anda mungkin sekarang meninggalkan titik koma dari pernyataan dievaluasi jika Anda ingin: & # x3c;}%)% & # x3e; .
- _ setelah (callback, 0) akan memicu sekarang callback segera, membuat & quot;. Setelah & quot; lebih mudah digunakan dengan API asynchronous.
Apa yang baru di versi 1.2.1:
- Beberapa perbaikan bug penting bagi _.isEqual, yang sekarang harus berbuat lebih baik pada Array bermutasi, dan non-Array objek dengan panjang properti.
- Can sekarang _.groupBy (daftar, 'properti') sebagai jalan pintas untuk mengelompokkan nilai oleh properti umum tertentu.
- _. Fungsi throttle'd sekarang api segera setelah doa, dan tingkat terbatas setelahnya.
- Sebagian besar _.is [Jenis] cek tidak lagi ducktype.
- Fungsi _.bind kini juga bekerja pada konstruktor, a-la ES5 ... tapi Anda tidak akan pernah ingin menggunakan _.bind pada fungsi konstruktor.
- _. Clone tidak lagi membungkus jenis non-objek di Objek.
- _. Mencari dan _.filter sekarang nama-nama pilihan untuk _.detect dan _.select.
Apa yang baru di versi 1.2.0:
- Fungsi _.isEqual sekarang mendukung benar kesetaraan dalam perbandingan, dengan memeriksa struktur siklik, berkat Kit Cambridge.
- Menggarisbawahi template sekarang mendukung HTML melarikan diri interpolasi, menggunakan & # x3c;% - ...% & # x3e; sintaks.
- Ryan Tenney kontribusi _.shuffle, yang menggunakan dimodifikasi Fisher-Yates untuk memberikan salinan dikocok array.
- _. Uniq sekarang dapat melewati iterator opsional, untuk menentukan dengan apa kriteria suatu objek harus dianggap unik.
- _. Bertahan sekarang mengambil argumen opsional yang akan mengembalikan N elemen terakhir dari daftar.
- Sebuah fungsi _.initial baru ditambahkan, sebagai cermin dari _.rest, yang mengembalikan semua nilai awal daftar (kecuali N terakhir).
Apa yang baru di versi 1.1.7:
- Ditambahkan _.groupBy, yang mengumpulkan koleksi ke kelompok item seperti.
- Ditambahkan _.union dan _.difference, untuk melengkapi (re-nama) _.intersection.
- Berbagai perbaikan untuk mendukung array jarang. _.toArray sekarang kembali clone, jika langsung melewati array. _.functions kini juga mengembalikan nama-nama fungsi yang hadir dalam rantai prototipe.
Apa yang baru di versi 1.1.6:
- Ditambahkan _.after, yang akan kembali fungsi bahwa hanya berjalan setelah pertama yang disebut sejumlah tertentu kali. _.invoke sekarang dapat mengambil referensi fungsi langsung. _.every sekarang memerlukan fungsi iterator untuk dilewati, yang mencerminkan ECMA5 API. _.extend tidak lagi salinan kunci ketika nilai tidak terdefinisi. _.bind sekarang kesalahan ketika mencoba untuk mengikat nilai undefined.
Apa yang baru di versi 1.1.4:
- Peningkatan sesuai dengan metode Array ES5 ketika melewati null sebagai nilai. _.wrap sekarang benar menetapkan ini untuk fungsi dibungkus. _.indexOf sekarang mengambil bendera opsional untuk menemukan indeks penyisipan dalam array yang dijamin sudah disortir.
- Menghindari penggunaan .callee, untuk memungkinkan _.isArray untuk bekerja dengan baik dalam mode ketat ES5 ini.
Apa yang baru di versi 1.1.3:
- Dalam CommonJS, Menggarisbawahi sekarang mungkin diperlukan dengan hanya :
- var _ = memerlukan (& quot; menggarisbawahi & quot;). Ditambahkan _.throttle dan _.debounce fungsi .
- Dihapus _.breakLoop, demi sebuah ECMA5 gaya un-break bisa setiap pelaksanaan - ini menghapus mencoba / menangkap, dan Anda sekarang akan memiliki lebih jejak stack untuk pengecualian yang dilemparkan dalam sebuah iterator Menggarisbawahi. Peningkatan keluarga isType fungsi untuk interoperabilitas yang lebih baik dengan benda host Internet Explorer. _.template sekarang benar lolos backslash di template. Peningkatan kompatibilitas _.reduce dengan versi ECMA5: jika Anda tidak lulus nilai awal, item pertama dalam koleksi digunakan. _.each tidak lagi mengembalikan koleksi iterasi, untuk meningkatkan konsistensi dengan forEach ECMA5 ini.
Apa yang baru di versi 1.0.4:
- fungsi Memoize _, yang dapat digunakan untuk. mempercepat perhitungan diulang mahal dengan caching hasil.
Apa yang baru di versi 1.0.2:.
- _.isArguments Tetap untuk Opera
Komentar tidak ditemukan