


Ringkasan kaedah tatasusunan dalam Javascript (disyorkan)_javascript kemahiran
Array.prototype mentakrifkan banyak kaedah untuk mengendalikan tatasusunan Berikut ialah beberapa kaedah dalam ECMAScript3
Kaedah 1.Array.join()
Kaedah ini menukarkan elemen dalam tatasusunan kepada rentetan dan menyambungkannya bersama-sama mengikut simbol yang ditentukan, dan mengembalikan rentetan yang dijana terakhir Ia boleh mengandungi parameter, iaitu simbol untuk menyambungkan elemen tatasusunan .
var ay = [1,2,3]; ay.join(); // =>"1,2,3" ay.join("+"); // => "1+2+3" ay.join(" "); // =>"1 2 3" ay.join(""); // =>"123" var by = new Array(10) //新建一个长度为10的空数组 by.join("-"); //=> "---------" 连接10个空元素
Kaedah 2.Array.reverse()
Kaedah ini membalikkan susunan unsur dalam tatasusunan dan mengembalikan tatasusunan dalam susunan terbalik Kaedah ini akan menukar tatasusunan semasa dan tidak akan membuat tatasusunan baharu.
var a = [1,2,3];
a.reverse().join(); //=>"3,2,1" , pada masa ini a=[3,2,1]
Kaedah 3.Array.sort()
Kaedah ini mengisih elemen dalam tatasusunan dan mengembalikan tatasusunan yang diisih. Apabila kaedah sort() tidak mengambil parameter, tatasusunan diisih mengikut susunan abjad Jika tatasusunan mengandungi elemen yang tidak ditentukan, ia akan diisih ke penghujung tatasusunan.
var as = ["pisang","ceri","epal"];
as.sort();
as.join(" "); //=>"ceri pisang epal"
Kami juga boleh menghantar fungsi perbandingan sebagai parameter kepada kaedah sort() untuk mengisih tatasusunan menggunakan fungsi perbandingan yang ditentukan. Jika nilai pulangan fungsi perbandingan kurang daripada 0, parameter pertama didahulukan Sebaliknya, jika nilai pulangan lebih besar daripada 0, parameter kedua didahulukan Jika dua nilai parameter adalah sama, 0
dikembalikan.
var sy = [1111,222,4,33];
sy.sort(); sy.sort(fungsi(a,b){
kembalikan a-b;
});
Nota: Adalah paling sesuai untuk menggunakan fungsi tanpa nama di sini, kerana ia hanya dipanggil sekali dan tidak perlu menyatakan nama fungsi
Kaedah 4.Array.concat()
Kaedah ini mencipta dan mengembalikan tatasusunan baharu, menyambungkan elemen tatasusunan asal dan setiap elemen dalam kaedah untuk membentuk tatasusunan baharu. Kaedah ini tidak memanggil parameter dalam kaedah secara rekursif.
a.concat([4,5]); //=>"1,2,3,4,5"
a.concat([4,5],[6,7]); //=>"1,2,3,4,5,6,7"
a.concat(4,[5,[6,7]]); //=>"1,2,3,4,5,[6,7]"
Kaedah ini mengembalikan serpihan atau subarray bagi tatasusunan yang ditentukan Kaedah ini boleh mempunyai dua parameter, yang masing-masing menentukan kedudukan mula dan akhir serpihan yang dikembalikan mengandungi elemen yang ditentukan oleh parameter pertama dan semua elemen sehingga tetapi tidak termasuk elemen tatasusunan pertama pada kedudukan yang ditentukan oleh dua parameter. Jika terdapat hanya satu parameter, ia mengandungi kedudukan mula yang ditentukan ke penghujung tatasusunan Parameter boleh menjadi nilai negatif, menunjukkan kedudukan relatif kepada elemen terakhir dalam tatasusunan. Kaedah ini tidak mengubah suai tatasusunan yang dipanggil.
d.slice(1,-1); //=>"2,3,4"
d.slice(3); //=>"4,5"
d.slice(-3,-1); //=>"3,4"
6.Array.splice()方法
该方法是在数组中插入或删除元素的通用方法,该方法会修改原始数组。该方法可以包含多个参数,第一个参数指定要在数组中插入或删除的起始位置,第二个参数制定了删除元素的个数,若不指定则将起始位置以及后面元素全部删除,两个参数之后的参数指定了插入数组的元素,该方法返回由删除元素组成的数组。
var e = [1,2,3,4,5,6]; e.splice(4); //=> 返回[5,6] ; e是[1,2,3,4] e.splice(1,2); //=> 返回[2,3] ; e是[1,4] var f = [1,2,3,4,5]; f.splice(2,0,"a","b"); //=>返回[]; f是[1,2,a,b,3,4,5] f.splice(2,2,[6,7],3); //=>返回[a,b]; f是[1,2,[6,7],3,4,5]
7.push()和pop()方法
这两个方法将数组当做栈使用,push()方法是在数组尾部添加一个或多个元素,并返回数组的长度。pop()方法是删除数组的最后一个元素,减少数组长度并返回删除的值。
8.unshift()方法和shift()方法
这两个方法是在数组头部进行添加删除操作,unshift()方法是在数组头部添加一个或多个元素,返回数组长度。shift()方法是删除数组第一个元素并返回。
var a=[]; //[] a.push(1,2); //[1,2] a.pop(); //[1] a.unshift(2,3); //[2,3,1] a.shift(); //[3,1]
9.toString()和toLocaleString()方法
这两个方法是将数组每个元素转化为字符串,toString()是将每个元素转化为字符串并且输出用逗号隔开。toLocaleString()方法是数组每个元素调用toLocaleString()转化为字符串,并使用本地化分隔符连接。
下面在介绍几个ECMAScript5中特有的数组方法,在介绍方法之前首先做一个大致了解。大多数方法的第一个参数接受一个函数,并且对数组每个元素调用一次这个函数,如果说稀疏数组,不存在的元素不调用函数。大多数情况下,调用的函数使用三个参数:数组元素,元素的索引以及数组本身。
1.forEach()方法
该方法从头到尾遍历数组,数组每个元素都调用指定的函数。该方法在遍历完所有数组元素之前不会终止。若想提前终止,必须将forEach()放到try块中,并可以抛出异常。
var data=[1,2,3,4,5] var sum = 0; data.forEach(function(value){ //=>value为数组元素 sum+=value; }) //=>15 data.forEach(function(value,i,a){ //=>三个参数分别指代数组元素,元素索引和数组 a[i] = v+1; }) //=>data=[2,3,4,5,6]
2.map()方法
该方法将数组的每个元素传递给指定的函数,并返回一个新数组,该数组包含了数组元素调用函数对应的返回值。如果是稀疏数组,返回的新数组也是同样结构的系数数组。
var a=[1,2,3]; var b=a.map(function(v){ return v*v; }) //=> b=[1,4,9]
3.filter()方法--类似于条件筛选
该方法返回的是原始数组的一个子集,传递的函数用来做逻辑判定,返回true或false,如果返回的值为true或可以转化为true,则当前数组元素就是子集的成员,添加到返回的数组中。该方法会跳过稀疏数组的空元素。
var a=[5,4,3,2,1] var smalla=a.filter(function(v){ return v<3; }) //=>返回[2,1] var everya=a.filter(function(v,i){ //=>i表示元素索引 return i%2==0; }) //=>返回[5,3,1]
4.every()和some()方法
这两个方法是对数组进行逻辑判定,对数组每个元素运用指定函数进行判定返回true或false。
every()方法是当且仅当数组中所有元素调用判定函数都返回true,才返回true,否则返回false。
some()方法是当数组中至少有一个元素调用判定函数返回true,就返回true,否则返回false。
这两个方法都是一旦确认返回值后就不在遍历数组元素了。
5.reduce()和reduceRight()方法
这两个方法使用指定的函数将数组元素进行组合,生成单个值。
reduce()需要两个参数,第一个是执行化简组合的操作函数,第二个是组合的初始值。和前面几个方法不同的是,常见的三个参数(数组元素、元素索引和数组本身)会作为操作函数的2~4个参数传递给函数,第一个参数是到目前为止进行计算组合的结果。
如果是针对空数组,并不指定初始值时调用reduce()方法会导致类型错误异常。
reduceRight()方法和reduce()方法的工作原理相同,不同的是其按数组索引从高到低进行处理(即从右到左进行合并处理)
6.indexOf()和lastIndexOf()方法
这两个方法都是用于在整个数组中搜索具体给定的值,并返回第一个匹配元素的索引值,若没有则返回-1.indexOf()方法是从头到尾进行搜索,而lastIndexOf()是从尾到头进行搜索。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Kaedah menggunakan gelung foreach untuk mengalih keluar elemen pendua daripada tatasusunan PHP adalah seperti berikut: melintasi tatasusunan, dan jika elemen itu sudah wujud dan kedudukan semasa bukan kejadian pertama, padamkannya. Contohnya, jika terdapat rekod pendua dalam hasil pertanyaan pangkalan data, anda boleh menggunakan kaedah ini untuk mengalih keluarnya dan mendapatkan hasil tanpa rekod pendua.

Kaedah untuk tatasusunan penyalinan dalam dalam PHP termasuk: Pengekodan dan penyahkodan JSON menggunakan json_decode dan json_encode. Gunakan peta_tatasusunan dan klon untuk membuat salinan kunci dan nilai yang mendalam. Gunakan bersiri dan menyahsiri untuk bersiri dan menyahsiri.

Perbandingan prestasi kaedah membalik nilai kunci tatasusunan PHP menunjukkan bahawa fungsi array_flip() berprestasi lebih baik daripada gelung for dalam tatasusunan besar (lebih daripada 1 juta elemen) dan mengambil masa yang lebih singkat. Kaedah gelung untuk membalikkan nilai kunci secara manual mengambil masa yang agak lama.

Pengisihan tatasusunan berbilang dimensi boleh dibahagikan kepada pengisihan lajur tunggal dan pengisihan bersarang. Pengisihan lajur tunggal boleh menggunakan fungsi array_multisort() untuk mengisih mengikut lajur pengisihan bersarang memerlukan fungsi rekursif untuk merentasi tatasusunan dan mengisihnya. Kes praktikal termasuk pengisihan mengikut nama produk dan pengisihan kompaun mengikut volum jualan dan harga.

Fungsi array_group_by PHP boleh mengumpulkan elemen dalam tatasusunan berdasarkan kekunci atau fungsi penutupan, mengembalikan tatasusunan bersekutu dengan kuncinya ialah nama kumpulan dan nilainya ialah tatasusunan elemen kepunyaan kumpulan.

Amalan terbaik untuk melaksanakan salinan dalam tatasusunan dalam PHP ialah menggunakan json_decode(json_encode($arr)) untuk menukar tatasusunan kepada rentetan JSON dan kemudian menukarnya kembali kepada tatasusunan. Gunakan unserialize(serialize($arr)) untuk mensiri tatasusunan kepada rentetan dan kemudian menyahsirikannya kepada tatasusunan baharu. Gunakan RecursiveIteratorIterator untuk melintasi tatasusunan berbilang dimensi secara rekursif.

Fungsi array_group() PHP boleh digunakan untuk mengumpulkan tatasusunan dengan kunci yang ditentukan untuk mencari elemen pendua. Fungsi ini berfungsi melalui langkah berikut: Gunakan key_callback untuk menentukan kunci kumpulan. Secara pilihan, gunakan value_callback untuk menentukan nilai kumpulan. Kira elemen terkumpul dan kenal pasti pendua. Oleh itu, fungsi array_group() sangat berguna untuk mencari dan memproses elemen pendua.

Kerumitan algoritma penyahduplikasi tatasusunan PHP: array_unique(): O(n) array_flip()+array_keys(): O(n) foreach gelung: O(n^2)
