Kata -kata sebelumnya
String dan array memiliki banyak kesamaan. Mereka memiliki banyak metode dan sangat mirip; Tetapi mereka memiliki perbedaan. String adalah nilai yang tidak dapat diubah, sehingga dapat dianggap sebagai array hanya baca. Artikel ini membandingkan metode string dan array yang serupa
Dapat diindeks
Ecmascript5 mendefinisikan metode untuk mengakses karakter, menggunakan braket persegi plus indeks numerik untuk mengakses karakter tertentu dalam string
Manfaat terbesar dari string yang dapat diindeks adalah bahwa mereka sederhana, menggantikan panggilan chARAT () dengan tanda kurung persegi, yang lebih ringkas, mudah dibaca, dan mungkin lebih efisien. Tidak hanya itu, fakta bahwa string berperilaku seperti array membuat metode array umum berlaku untuk string
Jika parameter di luar jangkauan atau NAN, output yang tidak ditentukan
var str = "hello"; console.log (str [0]); // hconsole.log (str [[1]]); // econsole.log (str [false]); // tidak terdefinedConsole.log (stror [-1]); // tidak terdefinikasiconsole.log (stred [nan]);//////tidak terdefinisi (string) (string] (tidak terdefinikasi) (string] (string] (nan]);////tidak terdefinisi (string] (tidak terdefinikasi) (nan]);////tidak terdefinisi (string] (nan]);////tidak terdefinikasi.
var arr = ['h', 'e', 'l', 'l', 'o']; console.log (arr [0]); // hconsole.log (arr [[1]]); // econsole.log (arr [false]); // un DefinedConsole.log (arr [-1]); // undefinedconsole.log (arr [nan]); // undefinedconsole.log (arr []); // laporan kesalahan
Mengubah
String dapat dikonversi menjadi array menggunakan metode split (); Array dapat dikonversi ke string menggunakan metode gabung ()
【membelah()】
Metode split () membagi string menjadi beberapa string berdasarkan pemisah yang ditentukan dan menempatkan hasil dalam array. Pemisah bisa berupa string atau ekspresi reguler
Metode ini dapat menerima (opsional) parameter kedua untuk menentukan ukuran array. Jika parameter kedua adalah nilai dalam kisaran 0-array.length, output sesuai dengan parameter yang ditentukan, dan output semua hasil dalam kasus lain.
Jika pembatas yang ditentukan tidak muncul dalam string, nilai string asli dikembalikan sebagai array.
var colortext = 'merah, biru, hijau, kuning'; konsol.log (colortext.split ('')); // ["r", "e", "d", ",", "b", "l", "u", ",", "e", "e", ",", "g", "u", "", "e", "e", ",", "g", "u", "", "e", "e", ",", "G "e", "l", "l", "l", "o", "w"] console.log (colortext.split (',')); // ["red", "blue", "green", "yellow"] console.log (colortext.split (',', 2)); // ["Red", "Biru"] konsol.log (colortext.split (',', 6)); // ["merah", "biru", "hijau", "kuning"] konsol.log (colortext.split ('-')); // ["Red, Blue, Green, Yellow"] Console.log (colortext.split (/",", "Blue, Green, Yellow"); " "Kuning"] konsol.log (colortext.split (/e/)); // ["r", "d, blue", ", gr" akan mengenali sebagai [",", ",", ",", "]【bergabung()】
Metode join () dapat menggunakan pembatas yang berbeda untuk membangun string ini. Metode join () hanya menerima satu parameter, yang digunakan sebagai pembatas, dan kemudian mengembalikan string yang berisi semua item array.
Jika tidak ada nilai yang diteruskan ke metode gabungan (), gunakan koma sebagai pemisah
var a = [1,2,3]; console.log (a.join ()); // '1,2,3'console.log (a.join (' ')); //' 1 2 3'console.log (a.join ('')); // '123'var b = baru Array (10); b.join ('-'); // '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Jika nilai item dalam array adalah nol atau tidak terdefinisi, nilainya direpresentasikan sebagai string kosong dalam hasil yang dikembalikan dengan metode join ()
var warna = [1, tidak terdefinisi, 2, null, 3]; console.log (color.join ()); // '1 ,, 2 ,, 3'
Karena string adalah objek array, Anda juga dapat menggunakan metode gabungan ()
console.log (array.prototype.join.call ('halo', '-')); // "halo" var str = 'test'; var arr = str.split ('') // ["t", "e", "s", "t"] console.log (arr.join ('-')); // 'tes-t'Splicing
String dan array berbagi metode splicing concat ()
var value = 'hello'; console.log (value.concat ('world')); // 'helloworld'console.log (value.concat ([' world '])); //' helloworld'console.log (value.concat (['dunia'])); // 'helloworld' var value = ['hello']; console.log (value.concat ('world')); // ["hello", "world"] console.log (value.concat (['world'])); // ["hello", "world"] console.log (value.ccat (['world']]));/hello "; ["World"] console.log (value.concat ([['world']])); // ["hello", ["world"]]membuat
Baik string dan array memiliki metode penciptaan SLICE (), yang masing -masing digunakan untuk membuat substring dan subarray.
Metode SLICE () membuat array baru (atau string) berdasarkan satu atau lebih item dalam array saat ini (atau string), menerima satu atau dua parameter, yaitu, untuk mengembalikan posisi awal dan akhir dari item, dan akhirnya mengembalikan array baru (atau string)
Metode Slice (Start, End) membutuhkan dua parameter awal dan akhir, yang mengembalikan subarray (atau string) dari posisi awal ke (tetapi tidak mengandung) posisi akhir dalam array ini (atau string). Jika akhir tidak terdefinisi atau tidak ada, ia mengembalikan semua item dari posisi awal ke akhir array (atau string).
Jika Start adalah angka negatif, mulai = maks (panjang + mulai, 0)
Jika ujung adalah angka negatif, end = maks (panjang + ujung, 0)
Mulai dan Akhir tidak dapat bertukar posisi
var angka = [1,2,3,4,5]; console.log (numbers.slice (2)); // [3,4,5] console.log (number.slice (2, tidak terdefinisi)); // [3,4,5] consol e.log (numbers.slice (2,3)); // [3] console.log (numbers.slice (2,1)); // [] console.log (numbers.slice (-3)); //-3+5 = 2 -> [3,4,5] console.log (numbers.slice (-8)); // maks (5 + -8,0) = 0 -> [1,2,3,4,5] konsol.log (number.slice (0, -3)); // -3 + 5 = 2 -> [1,2] console.log (numbers.slice (-2, -1)); //-2+5 = 3; -1+5 = 4; -> [4]
var stringValue = 'hello world';console.log(stringValue.slice());//'hello world'console.log(stringValue.slice(2));//'llo world'console.log(stringValue.slice(20));//''console.log(stringValue.slice(2,undefined));//'llo world'console.log (stringValue.slice (2, -5)); // 'llo' console.log (stringValue.slice (2, -20)); // '' console.log (stringValue.Slice (-2,2)); // '' '' '' '' (-Log '(-2)); //' 'console.log (stringValue.slice. console.log (stringValue.slice (-2,20)); // 'ld'console.log (stringValue.slice (-20,2)); //' he'console.log (stringvalue.slice (-20, -2)); // 'Halo wor'
Lokasi
Baik string dan array memiliki dua metode untuk menemukan posisi: indexOf () dan lastIndexOf (). Metode posisi persis kebalikan dari metode membaca braket []. Salah satunya adalah menemukan indeks melalui item, dan yang lainnya adalah menemukan item melalui indeks.
【Indexof ()】
Metode IndexOf (Search, Start) menerima dua parameter pencarian dan mulai, mengembalikan lokasi di mana pencarian pertama kali muncul, dan jika tidak ditemukan, ia mengembalikan -1
Parameter pencarian dalam string akan memanggil fungsi transformasi string () untuk mengonversi nilai non-string parameter menjadi string; Sedangkan parameter pencarian dalam array akan dibandingkan dengan menggunakan operator kesetaraan yang ketat (===)
Apakah itu array atau string, awal parameter kedua akan secara implisit memanggil fungsi transformasi angka (), mengonversi nilai awal non-numerik (kecuali tidak terdefinisi) menjadi nilai numerik; Jika parameter ini diabaikan atau parameter tidak ditentukan atau NAN, mulai = 0
Jika parameter start adalah angka negatif, pemrosesan string adalah untuk mulai = 0; Sedangkan pemrosesan array adalah untuk memulai = maks (0, mulai+panjang)
var string = 'halo dunia dunia '; console.log (string.indexof (' ld ')); // 9console.log (string.indexof (' ld ', tidak terdefinisi)); // 9console.log (string.indexof (' ld ', nan)); // 9console.log (string.indexof (' ld ' ring.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ( 'ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9console.log (string.indexof ('ld',-1)); // 9 console.log (string.indexof ('ld', 10)); // 15console.log (string.indexof ('ld', [10])); // 15console.log (string.index Dari ('true', [10])); //-1console.log (string.indexof (false, [10])); //-1console.log (string.indexof (false, [10])); //-1 var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.indexof ('a', tidak terdefinisi)); // 0console.log (arr.indexof ('a', nan)); // 0consol e.log (arr.indexof ('a', 1)); // 5console.log (arr.indexof ('a', true))); // 5console.log (arr.indexof ('a',-1)); // max (0, -1+7) = 6; -1console.log (arr.indexof ('a',-5)); // max (0, -5+7) = 2; 5console.log (arr.indexof ('a',-50)); // max (0, -50+7) = 0; 0【LastIndexof ()】
Berbeda dengan metode indexOf (), metode lastIndexOf () adalah untuk melihat ke atas dari kanan ke kiri.
Metode LastIndexof (Search, Start) menerima dua parameter pencarian dan mulai, mengembalikan lokasi tempat pencarian pertama kali muncul, dan jika tidak ditemukan, ia mengembalikan -1
Demikian pula, parameter pencarian dalam string memanggil fungsi transformasi string () untuk mengonversi nilai non-string parameter menjadi string; Sedangkan parameter pencarian dalam array dibandingkan dengan menggunakan operator kesetaraan yang ketat (===)
Apakah itu array atau string, awal parameter kedua akan secara implisit memanggil fungsi transformasi angka (), mengonversi nilai awal non-numerik (kecuali tidak terdefinisi) menjadi nilai numerik.
Jika parameter ini diabaikan atau parameter tidak terdefinisi atau NAN, pemrosesan string mulai = panjang - 1; Sedangkan pemrosesan array mulai = 0
Jika parameter start adalah angka negatif, pemrosesan string adalah untuk mulai = 0; Sedangkan pemrosesan array adalah untuk memulai = maks (0, mulai+panjang)
var string = 'halo dunia dunia '; console.log (string.LastIndexof (' ld ')); // 15console.log (string.LastIndexof (' ld ', tidak terdefinisi)); // 15console.log (strin G.LastIndexof ('ld', nan)); // 15console.log (string.LastIndexof ('ld',-1)); //-1console.log (String.LastIndexof ('h',-1)); // 0c onsole.log (string.LastIndexof ('w', tidak terdefinisi)); // 12console.log (string.LastIndexof ('ld', 10)); // 9console.log (String.Last Indexof ('ld', [10])); // 9console.log (string.LastIndexof ('ld', [10])); //-1console.log (string.LastIndexof (false, [10])); //-1 var arr = [1,2,3,'1','2','3'];console.log(arr.lastIndexOf('2'));//4console.log(arr.lastIndexOf(3));//2console.log(arr.lastIndexOf(0));//-1var arr = ['a', 'b', 'c', 'd', 'e', 'a', 'b']; console.log (arr.LastIndexof ('b')); // 6console.log (arr.LastIndexof ('b', tidak terdefinisi)); //-1console.log (arr.lastindex) ('a ndefined)); // 0console.log (arr.LastIndexof ('b', nan)); //-1console.log (arr.LastIndexof ('b', 1)); // 1console.log (arr.LastIndexof ('b',-1)); // max (0, 0, -1) ('(' b ',-1)); // max (0, 0, -1); 6console.log (arr.LastIndexOf ('B',-5)); // Max (0, -5+7) = 2; 1Console.log (arr.LastIndexOf ('b',-50)); // max (0, -50+7) = 0; -1Perbandingan array dan metode string di atas dalam JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.