Rumah >hujung hadapan web >tutorial js >Peluasan dan pembaikan tatasusunan nota bacaan dalam kemahiran javascript framework design_javascript
kaedah 1.indexOf dan lastIndexOf:
Oleh kerana IE7 akan melaporkan ralat apabila menggunakan indexOf pada objek tatasusunan, ia perlu ditulis semula untuk keserasian.
kaedah 2.kocok: kocok tatasusunan.
3. Meratakan tatasusunan: ratakan, mengembalikan tatasusunan satu dimensi
4.kaedah unik: operasi penyahduplikasian pada tatasusunan
Penemuduga paling suka bertanya tentang kaedah ini, kerana ia mempunyai banyak kaedah pelaksanaan, yang paling biasa ialah dua untuk gelung. Perkara yang paling biasa diketahui ialah menggunakan objek a, dan kemudian arr tatasusunan gelung Setiap kali jika (a[arr[i]]) wujud, jika ia tidak wujud, ia akan ditolak ke hasil tatasusunan anda yang baru ditakrifkan. . Kewujudan itu terbukti dan berulang, jadi tidak perlu menolaknya kepada hasilnya. Dalam skema ini, "123" dan 123 akan dianggap sama. Sebenarnya, satu adalah rentetan dan satu lagi adalah nombor, jadi mereka tidak boleh dianggap sama.
Jadi kaedah berikut muncul: [1,"1","1"]
//Pertama tentukan sama ada jenisnya sama, tentukan sama ada nilainya sama Jika tidak sama, simpannya jika sama, ia membuktikan bahawa nilainya sudah wujud sebelum ini.
Kalau jenis tak sama, ada dua situasi,
Dalam kes pertama, obj telah pun menyimpan data ini sebelum ini, contohnya: obj[123] = 123, sekarang array[i] = "123", pada masa ini, jenis obj[array[i]]) ialah a number , dan typeof array[i] ialah rentetan, jadi ia disimpan dalam array.
Situasi kedua ialah obj belum menyimpan data ini, contohnya: array[i] = "123", obj["123"] = undefind, kemudian typeof obj[array[i]]) ialah typeof undefined = undefined, tidak sama dengan typeof array[i], disimpan dalam array.
Kaedah ini boleh menyelesaikan kes di mana rentetan dan nombor adalah sama, tetapi ia tidak dapat menyelesaikan kes di mana objek adalah sama. Contohnya: a = {1:2}, b ={2:1};
Kali pertama melalui gelung, jenis obj[a] = tidak ditentukan, jenis a = Objek. Simpan obj[a] = a. Sebenarnya, ia ialah obj[Object] = a;
Dalam gelung kedua, typeof obj[b] adalah sama dengan typeof obj[Object], yang sebenarnya typeof a = object, typeof b = object Oleh itu, ia memasuki obj[array[i]] != array[. i]|, Itu ialah obj[b]->obj[Object]->a! = b, jadi deposit
obj[b] = b; iaitu, obj[Objek] = b;
Dalam kes ini, semua objek hanya akan mempunyai nilai objek terakhir yang disimpan.Apabila memikirkan tentang objek, saya menggunakan sesuatu seperti ini:
6.min mengembalikan nilai minimum tatasusunan: return Math.min.apply(0,array);
7.unshift tidak mengembalikan panjang tatasusunan di bawah ie6 dan 7.
Ada sesuatu yang perlu diperhatikan di sini: