panjang mencari bilangan elemen, atau panjang, tatasusunan.
Perlu diingatkan bahawa jenis tatasusunan dalam Javascript ialah objek. Jika anda pernah mempelajari bahasa seperti c/c atau java sebelum ini, ini mungkin kelihatan agak mengelirukan. Dalam JavaScript, tatasusunan sendiri sebenarnya jenis data , yang berbeza daripada tatasusunan dalam c/c. Dalam JS, anda boleh menyimpan pelbagai jenis data dalam satu tatasusunan.
// Arrayning uzunligi, o'lchami const array = ["nimadir", "kimdir", true, 55, 4.6]; console.log(`arrayning uzunligi ${array.length}`);
Anda mungkin ada soalan. Adakah mungkin untuk menukar nilai pembolehubah malar? Ya, kami memasukkan elemen baharu melalui kaedah push(), tetapi kami tidak menetapkan nilai baharu pada tatasusunan.
// push(), array oxiriga yangi element qo'shish const array = ["nimadir", "kimdir", true, 55, 4.6]; array.push("yangi element"); console.log(`arrayning uzunligi: ${array} \n`);
kaedah concat() akan menggabungkan dua tatasusunan.
// concat(), ikki arrayni birlashtirish let array1 = ["nimadir", "kimdir", true, 55, 4.6]; let array2 = [8, 3, 9]; console.log("array1: " + array1, "\n", "array2: " + array2 + "\n"); let result = array1.concat(array2); console.log( `Ikki array bitta yangi arrayga birlashtirildi: result [${result}] \n` );
Terdapat beberapa cara berbeza untuk memadamkan elemen tatasusunan dalam JavaScript.
kaedah pop() digunakan untuk mengalih keluar satu elemen daripada hujung tatasusunan.
// pop(), arrayning oxiridan bitta element o'chiradi let array1 = [6, "satr", true, 55, 4.6]; console.log(`\navval: [${array1}]\n`); array1.pop(); console.log(`keyin: [${array1}]\n`);
shift() mengalih keluar satu elemen dari permulaan tatasusunan
// shift() Metodi const array = [44, 5.3, 2, 14, 98, "text", "olma"]; console.log(`\navval: [${array}] \n`); array.shift(); console.log(`keyin: 44 arrayda emas [${array}]\n`);
splice() adalah unik kerana ia bukan sahaja digunakan untuk memadam elemen, tetapi juga untuk mengubah suai data. Untuk tujuan pemadaman, kaedah ini mengambil dua nilai.
Contohnya: tatasusunan const = [44, 5.3, 2, 14, 98, "teks", "epal"]; ada. Kami mahu memadamkan 2 elemen, bermula dari indeks 3, iaitu 14 (14 sendiri dipadamkan), 2 elemen.
// Arrayning uzunligi, o'lchami const array = ["nimadir", "kimdir", true, 55, 4.6]; console.log(`arrayning uzunligi ${array.length}`);
Untuk tujuan penggantian, splice() digunakan seperti berikut.
// push(), array oxiriga yangi element qo'shish const array = ["nimadir", "kimdir", true, 55, 4.6]; array.push("yangi element"); console.log(`arrayning uzunligi: ${array} \n`);
padam tatasusunan[i] ialah cara paling mudah untuk memadamkan unsur tatasusunan. Dalam kes ini, indeks elemen yang hendak dipadamkan ditulis bukannya [i].
// concat(), ikki arrayni birlashtirish let array1 = ["nimadir", "kimdir", true, 55, 4.6]; let array2 = [8, 3, 9]; console.log("array1: " + array1, "\n", "array2: " + array2 + "\n"); let result = array1.concat(array2); console.log( `Ikki array bitta yangi arrayga birlashtirildi: result [${result}] \n` );
find(function()) digunakan untuk mencari elemen tertentu daripada tatasusunan. Fungsi ditulis pada kaedah ini sebagai nilai, dan fungsi diberikan elemen untuk dicari. Fungsi ini tidak mengembalikan indeks, jika elemen yang dicari terdapat dalam tatasusunan, ia mengembalikan elemen ini, jika tidak, ia mengembalikan tidak ditentukan.
// pop(), arrayning oxiridan bitta element o'chiradi let array1 = [6, "satr", true, 55, 4.6]; console.log(`\navval: [${array1}]\n`); array1.pop(); console.log(`keyin: [${array1}]\n`);
kaedah indexOf() mengembalikan indeks elemen yang dicari.
// shift() Metodi const array = [44, 5.3, 2, 14, 98, "text", "olma"]; console.log(`\navval: [${array}] \n`); array.shift(); console.log(`keyin: 44 arrayda emas [${array}]\n`);
kaedah sort(), di sinilah "sakit kepala" JavaScript bermula. Pada pandangan pertama, kaedah sort() kelihatan mudah, tetapi sebenarnya terdapat satu lagi proses yang berlaku di sebalik tabir. Secara lalai, sort() mengisih rentetan , tetapi boleh mengisih dengan betul jika nilai integer atau angka diberikan. Tetapi JavaScript mengisih nombor jika mahu, bukan jika tidak (gurau sahaja):)
// splice() Metodi const array = [44, 5.3, 2, 14, 98, "text", "olma"]; console.log(`\navval: [${array}] \n`); array.splice(3, 2); console.log(`keyin: 14 va 98 elementlari o'chdi [${array}]\n`);
dalam nilai berangka seperti berikut.
// splice() Metodi const array = [44, 5.3, 2, 14, 98, "text", "olma"]; console.log(`\navval: [${array}] \n`); array.splice(3, 2, "yangi1", "yangi2"); console.log(`keyin: 14 va 98 elementlari almashtirildi [${array}]\n`);
Jadi apa masalahnya?
Anda boleh katakan, mari teruskan.
// Arrayning uzunligi, o'lchami const array = ["nimadir", "kimdir", true, 55, 4.6]; console.log(`arrayning uzunligi ${array.length}`);
Berhenti, lihat hasilnya, tatasusunan diisih: [100,1021,30,45,61,8] apa itu!?
JavaScript mengisih tatasusunan sebagai rentetan. Walaupun nombor diberikan, ia akan dipindahkan ke kod ascii dan diisih mengikut leksikografi, iaitu seperti rentetan. Ini akan menyebabkan ralat. Dalam masalah, 100 sepatutnya menjadi nombor terakhir, dan 30 sepatutnya sebelum 100. sebagai aksara, 1 mendahului 3, jadi ralat berlaku (lihat jadual ascii!). Untuk membetulkannya, kami memberikan function() kepada kaedah sort().
// push(), array oxiriga yangi element qo'shish const array = ["nimadir", "kimdir", true, 55, 4.6]; array.push("yangi element"); console.log(`arrayning uzunligi: ${array} \n`);
Fungsiarray.sort((a, b) => a - b); membandingkan dua elemen dalam tatasusunan dan menentukan susunannya.
- a dan b: Ini adalah dua elemen daripada tatasusunan yang dibandingkan. Kaedah sort() membandingkan semua elemen berpasangan (contohnya, a dan b) dan menyusunnya mengikut hasil fungsi perbandingan.
- a - b: Dengan mengira perbezaan ini, susunan unsur ditentukan:
Keputusan:
reverse() mencipta tatasusunan yang merupakan songsang tatasusunan yang diberikan oleh namanya.
// concat(), ikki arrayni birlashtirish let array1 = ["nimadir", "kimdir", true, 55, 4.6]; let array2 = [8, 3, 9]; console.log("array1: " + array1, "\n", "array2: " + array2 + "\n"); let result = array1.concat(array2); console.log( `Ikki array bitta yangi arrayga birlashtirildi: result [${result}] \n` );
Keputusan:
1. Tambah elemen, tukar:
a. panjang()
Masalah: Bayangkan tatasusunan besar yang mengandungi 1000 nilai. Jika anda hanya perlu mengeluarkan bilangan elemen dalam tatasusunan, apakah kaedah yang akan anda gunakan? Bagaimanakah bilangan elemen berubah dengan sebarang perubahan pada tatasusunan?
Masalah: Jika anda perlu menambah 1000 elemen baharu pada penghujung tatasusunan yang diberikan, tentukan panjang tatasusunan. Kaedah manakah yang paling berkesan untuk digunakan untuk ini?
b. tolak()
Masalah: Anda mempunyai tatasusunan di mana setiap elemen adalah sama. Setiap kali anda menambah elemen baharu, anda mesti menggantikan elemen pada penghujung tatasusunan. Bagaimanakah anda mengoptimumkan operasi ini?
Masalah: Anda mempunyai tatasusunan yang dipanggil tugas yang mengandungi pelbagai tugas yang perlu dilakukan. Setiap kali anda perlu menambah tugasan baharu dan mengemas kini tugasan di penghujung senarai. Bagaimana anda melakukan ini?
c. concat()
Masalah: Anda perlu menggabungkan dua tatasusunan dan memaparkannya dalam format yang sama. Tatasusunan pertama mengandungi hanya nombor mudah, dan yang kedua hanya mengandungi rentetan angka. Bagaimana untuk mencipta tatasusunan baharu daripadanya dan mengeluarkan semua nombor dalam format angka?
Masalah: Anda mempunyai dua tatasusunan, satu mengandungi maklumat tentang pengguna dan satu lagi mengandungi sejarah log masuk pengguna. Anda perlu menggabungkan tatasusunan ini, tetapi anda hanya mahu memaparkan sejarah keadaan aktif pengguna. Bagaimana anda melakukan ini?
2. Padam:
a. pop()
Masalah: Anda mempunyai berbilang senarai pengguna dan setiap kali anda perlu mengalih keluar pengguna terakhir daripada senarai. Tetapi anda hanya mahu mengekalkan pengguna aktif dari 3 hari lepas. Bagaimanakah anda boleh menguruskannya?
Masalah: Anda mempunyai tatasusunan bernama buku yang mengandungi maklumat tentang pelbagai buku. Setiap kali anda perlu memadamkan buku terakhir dan menambah buku baharu. Macam mana nak buat?
b. shift()
Masalah: Bayangkan proses baris gilir di mana pengguna sedang menunggu giliran mereka. Setiap kali anda log keluar daripada pengguna seterusnya dan masukkan pengguna baharu. Bagaimana anda melakukan proses ini?
Masalah: Anda mempunyai tatasusunan yang disusun mengikut masa log masuk pengguna. Anda mesti menyahlanggan pengguna pertama setiap kali. Bagaimana anda melakukan ini?
c. sambung()
Masalah: Anda mempunyai senarai pelajar dan setiap kali anda perlu menukar atau mengalih keluar 3 pelajar daripada senarai. Bagaimana anda melakukan proses ini?
Masalah: Anda mempunyai senarai isu. Setiap kali beberapa isu perlu dialih keluar dan diubah. Apabila menukar isu, isu lain mesti kekal dalam susunan yang betul. Bagaimana anda melakukan ini?
d. padamkan tatasusunan[i]
Masalah: Anda mempunyai tatasusunan yang besar dan anda perlu memadamkan elemen berdasarkan indeksnya. Apakah yang perlu dilakukan apabila memadamkan elemen, dengan mengambil kira cara elemen lain dalam tatasusunan diubah?
Masalah: Anda mempunyai senarai pelanggan dan setiap pelanggan mempunyai nombor ID unik. Apakah kaedah yang boleh digunakan untuk menyahdaftarkan pelanggan bagi ID tertentu?
3. Cari:
a. cari(fungsi())
Masalah: Anda mempunyai senarai pengguna. Setiap pengguna mempunyai nombor ID dan nama. Anda hanya perlu mendapatkan maklumat pengguna yang namanya "John". Bagaimana anda melakukan ini?
Masalah: Anda mempunyai senarai produk, dan setiap produk mempunyai nama dan harga. Anda hanya perlu mencari produk dengan harga melebihi 100. Bagaimana anda melakukan ini?
b. indexOf()
Masalah: Anda mempunyai senarai buku, dan setiap buku mempunyai tajuk dan pengarang. Jika pengguna mencari buku, tentukan indeksnya mengikut nama.
Masalah: Anda mempunyai senarai produk dan setiap produk diberikan nombor pengenalan unik. Jika pengguna sedang mencari produk, anda sepatutnya dapat mencarinya berdasarkan nombor IDnya. Bagaimanakah ini dilakukan?
4. Pesanan:
a. sort()(untuk nombor)
Masalah: Anda mempunyai berbilang penilaian pelajar. Isih gred dari terendah hingga tertinggi, tetapi isikan pelajar dengan gred yang sama mengikut nama.
Masalah: Anda mempunyai tatasusunan yang mengandungi harga produk. Anda boleh mengisih harga mengikut tertib menurun, tetapi jika harga adalah sama, isih mengikut tarikh jualan.
b. sort()(untuk rentetan)
Masalah: Anda mempunyai pelbagai nama pelanggan. Anda harus mengisihnya mengikut abjad, tetapi hanya dengan huruf besar
Masalah: Anda mempunyai tajuk buku. Anda ingin mengisih semua buku mengikut panjang perkataan di dalamnya. Bagaimana anda melakukan ini?
5. Klik:
a. terbalik()
Masalah: Anda mempunyai tatasusunan berbilang nombor. Anda mesti mengeluarkan tatasusunan ini dalam susunan terbalik. Bagaimana untuk mengira perubahan ini?
Masalah: Anda mempunyai senarai teks dan anda ingin mengeluarkan teks dalam susunan terbalik. Apakah yang anda akan dapat jika teks semuanya sama panjang?
pepijat dan soalan
Atas ialah kandungan terperinci Kaedah tatasusunan JavaScript.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!