Underscore: Memfilter objek dapat mengembalikan objek

Dibuat pada 1 Nov 2011  ·  8Komentar  ·  Sumber: jashkenas/underscore

Hai,

Berikut adalah kasus penggunaan umum untuk filter. Diberikan

a = {35: true, 45: true, 55: false}

seseorang ingin memfilter dan mendapatkan kembali hanya pasangan yang nilainya benar:

_.filter(a, function(val, key) {
  val === true;
});
// => {35: true, 45: true}

Saat ini, fungsi seperti filter push(value) sehingga seseorang mendapatkan array.

Apakah ada cara mudah untuk mencapai ini dengan solusi, dan jika tidak, apakah Anda akan mempertimbangkan untuk mengganti jenis pengembalian berdasarkan apakah kami menyediakan objek atau daftar?

change wontfix

Komentar yang paling membantu

jk, baru saja melihat _.pick yang sempurna untuk kasus penggunaan saya

Semua 8 komentar

+1

Saya hanya membutuhkan hal yang sama dan masalah ini adalah git Google ke-2 yang saya dapatkan saat mencari. Satu-satunya masalah dengan membuat _.filter pada objek mengembalikan objek adalah kompatibilitas ke belakang...

filter adalah fungsi yang berasal dari ES5 ... dan kami tentu tidak ingin merusak kompatibilitas dasar dengan spesifikasi.

Untuk mengatasi gambaran yang lebih besar: Semua fungsi enumerable Underscore.js dapat mengambil objek atau array, dan semua mengembalikan array. Melanggar konsistensi di sini perlu dilakukan untuk semua fungsi sekaligus, bukan hanya salah satunya. API saat ini memungkinkan Anda untuk membuat fungsi Garis Bawah tanpa harus khawatir tentang jenis input.

Saya telah menambahkan fungsi filter dan tolak ke fungsi peta pelacakan mixin Gist ini untuk objek dengan kegigihan kunci/val:

https://Gist.github.com/3430971

+1

+1 Bisakah kalian menambahkan _.filterObj (dll) satu per satu, mirip dengan _.mapObj ?

jk, baru saja melihat _.pick yang sempurna untuk kasus penggunaan saya

@jtfairbank persis apa yang saya butuhkan dan mungkin apa yang kebanyakan orang butuhkan ketika mereka datang ke sini untuk 'memfilter' objek dan membuat objek.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

umarfarooq125 picture umarfarooq125  ·  8Komentar

githublyp picture githublyp  ·  3Komentar

danilopolani picture danilopolani  ·  5Komentar

clouddueling picture clouddueling  ·  3Komentar

acl0056 picture acl0056  ·  5Komentar