cari

Rumah  >  Soal Jawab  >  teks badan

Menapis subset tatasusunan - Limpahan Tindanan

var a = [1,2,3,4,5,6];
var b = [2,3,6];
Tatasusunan b ialah subset tatasusunan a Alih keluar elemen yang mengandungi b daripada a, dan akhirnya Apakah pilihan terbaik?

某草草某草草2750 hari yang lalu691

membalas semua(4)saya akan balas

  • 某草草

    某草草2017-05-19 10:44:41

    https://lodash.com/docs/4.17....

    balas
    0
  • 巴扎黑

    巴扎黑2017-05-19 10:44:41

    function diff(a1, a2) {
      return a1.concat(a2).filter(function (val, index, arr) {
        return arr.indexOf(val) === arr.lastIndexOf(val);
      });
    }
    function diff2(a1, a2) {
      return a1.filter(val => {
        return a2.indexOf(val) === -1;
      })
    }

    balas
    0
  • 高洛峰

    高洛峰2017-05-19 10:44:41

    Gunakan penyelesaian asli

    Menggunakan kaedah filter Array boleh menyelesaikan masalah anda Pelaksanaan khusus adalah sangat mudah, dan orang lain juga telah menjawabnya.

    Penyelesaian dengan bantuan perpustakaan pihak ketiga

    Jika anda tidak keberatan merujuk pustaka pihak ketiga, anda disyorkan untuk memperkenalkan lodash. Pustaka ini mengandungi sejumlah besar kaedah untuk memproses tatasusunan Jika anda mempunyai banyak senario operasi tatasusunan, ini amat disyorkan.

    Ia mempunyai fungsi khusus untuk menangani masalah ini, yang dipanggil perbezaan Sudah tentu, rakan sekelas berkata sebelum ini anda juga boleh menggunakan, tetapi ia tidak semudah perbezaan.

    "_" dalam kod di bawah ialah objek lalai selepas memperkenalkan lodash Semua kaedah yang ditakrifkan oleh lodash berada di bawahnya, sedikit seperti "$" yang digunakan selepas memperkenalkan jQuery

    .
    var a = [1,2,3,4,5,6];
    var b = [2,3,6];
    
    var result = _.difference(a, b); // result=[1,4,5]

    balas
    0
  • 迷茫

    迷茫2017-05-19 10:44:41

    Kenapa susah-susah guna kaedah loadash,直接用数组的filter:

    var a = [1,2,3,4,5,6];
    var b = [2,3,6];
    
    var ans = a.filter((n) => !b.includes(n));
    console.log(ans);    //[1, 4, 5];

    balas
    0
  • Batalbalas