Menapis subset tatasusunan - Limpahan Tindanan
某草草
某草草 2017-05-19 10:42:41
0
4
711

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?

某草草
某草草

membalas semua(4)
某草草

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

巴扎黑
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;
  })
}
小葫芦

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]
迷茫

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];
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan