Bagaimana untuk mengalih keluar pendua daripada tatasusunan javascript

青灯夜游
Lepaskan: 2023-01-07 11:47:32
asal
2250 orang telah melayarinya

Kaedah: 1. Gunakan pernyataan "[...new Set(arr)]"; 2. Gunakan pernyataan "Array.from(new Set(arr))" 3. Gunakan penapis dan indexOf functions; 4. Gunakan double untuk gelung untuk menyemak sama ada nilai tersebut diduakan. Jika terdapat pendua, gunakan push() untuk memadamnya.

Bagaimana untuk mengalih keluar pendua daripada tatasusunan javascript

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Kaedah 1: […Set baharu(arr)]

const arr = [1, 2, 3, 2, 3];
[...new Set(arr)]; // [1, 2, 3]
Salin selepas log masuk

Kaedah 2: Array.from(Set baharu(arr) )

const arr = [1, 2, 3, 2, 3];
Array.from(new Set(arr)); // [1, 2, 3]
Salin selepas log masuk

Memandangkan elemen dalam Set adalah unik, sama ada ia adalah nilai asal atau rujukan objek, penyahduplikasian boleh dicapai dengan menukar tatasusunan menjadi objek Set

Array.from Kaedah boleh menukar objek Set ke dalam tatasusunan.

Kaedah 3: Gunakan penapis indexOf

function unique(arr) {
  return arr.filter(function(item, index, arr) {
    //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
    return arr.indexOf(item, 0) === index;
  });
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, "NaN", 0, "a", {…}, {…}]
Salin selepas log masuk

Kaedah 4: Gandakan untuk gelung

Kaedah paling mudah untuk difahami , gelung luar merentasi elemen, dan gelung dalam menyemak sama ada terdapat pendua

Apabila terdapat nilai pendua, anda boleh menggunakan push() atau splice()

function distinct(a, b) {
    let arr = a.concat(b);
    for (let i=0, len=arr.length; i<len; i++) {
        for (let j=i+1; j<len; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                // splice 会改变数组长度,所以要将数组长度 len 和下标 j 减一
                len--;
                j--;
            }
        }
    }
    return arr
}
Salin selepas log masuk

Tetapi ini Kaedah ini menggunakan lebih banyak ingatan dan paling kurang cekap

Bagaimana untuk mengalih keluar pendua daripada tatasusunan javascript

Kaedah 5: untuk...termasuk()

Berganda Versi yang dinaik taraf bagi gelung untuk Lapisan luar menggantikan gelung for dengan penyataan for...of, dan menukar gelung dalam kepada termasuk()

Pertama buat tatasusunan kosong Apabila termasuk() kembali false, Tolak elemen ke dalam tatasusunan kosong

Begitu juga, anda juga boleh menggunakan indexOf() untuk menggantikan includes()

function distinct(a, b) {
    let arr = a.concat(b)
    let result = []
    for (let i of arr) {
        !result.includes(i) && result.push(i)
    }
    return result
}
Salin selepas log masuk

Bagaimana untuk mengalih keluar pendua daripada tatasusunan javascript

[Pembelajaran yang disyorkan : Tutorial JavaScript Terperinci]

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar pendua daripada tatasusunan javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan