Rumah >hujung hadapan web >tutorial js >Ringkasan teknik operasi tatasusunan JavaScript biasa_teknik javascript

Ringkasan teknik operasi tatasusunan JavaScript biasa_teknik javascript

WBOY
WBOYasal
2016-05-16 16:31:031470semak imbas

Contoh dalam artikel ini meringkaskan teknik pengendalian biasa untuk tatasusunan JavaScript. Kongsikan dengan semua orang untuk rujukan anda. Butirannya adalah seperti berikut:

Kata Pengantar

Saya percaya semua orang sudah biasa dengan operasi berkaitan tatasusunan biasa dalam jquery atau garis bawah dan pustaka lain, seperti $.isArray, _.some, _.find dan kaedah lain. Ini tidak lebih daripada beberapa pembungkusan tambahan untuk operasi tatasusunan dalam js asli.
Di sini kami meringkaskan terutamanya API yang biasa digunakan untuk operasi tatasusunan JavaScript. Saya percaya ia akan membantu semua orang untuk menyelesaikan masalah program.

1
Suatu tatasusunan dalam JavaScript ialah objek khas Indeks yang digunakan untuk mewakili offset ialah sifat objek dan indeks mungkin integer. Walau bagaimanapun, indeks berangka ini ditukar kepada jenis rentetan secara dalaman kerana nama sifat dalam objek JavaScript mestilah rentetan.

2. Operasi

1 Tentukan jenis tatasusunan


Salin kod Kod adalah seperti berikut:
var array0 = []; // Literal
var array1 = new Array(); // Pembina
// Nota: Kaedah Array.isArray tidak disokong di bawah IE6/7/8
alert(Array.isArray(array0));
// Memandangkan keserasian, anda boleh menggunakan
alert(array1 instanceof Array);
// atau
alert(Object.prototype.toString.call(array1) === '[object Array]');
2 Tatasusunan dan Rentetan

Sangat mudah: untuk menukar daripada tatasusunan kepada rentetan, gunakan join; untuk menukar daripada rentetan kepada tatasusunan, gunakan split.


Salin kod Kod adalah seperti berikut:
// join - tukar daripada tatasusunan kepada rentetan, gunakan join
console.log(['Hello', 'World'].join(',')); // Hello,World
// split - tukar daripada rentetan kepada tatasusunan, gunakan split
console.log('Hello World'.split(' ')); // ["Hello", "World"]
3 Cari elemen

Saya percaya bahawa semua orang biasanya menggunakan jenis rentetan indexOf, tetapi hanya sedikit yang tahu bahawa indexOf tatasusunan juga boleh digunakan untuk mencari elemen.


Salin kod Kod adalah seperti berikut:
// indexOf - elemen cari
console.log(['abc', 'bcd', 'cde'].indexOf('bcd')); // 1
//

var objInArray = [
{
         nama: 'raja',
Lulus: '123'
},
{
          nama: 'raja1',
Lulus: '234'
}
];

console.log(objInArray.indexOf({

nama: 'raja',
Lulus: '123'
})); // -1

var elementOfArray = objInArray[0];

console.log(objInArray.indexOf(elementOfArray)); // 0

Seperti yang dapat dilihat daripada di atas, untuk tatasusunan yang mengandungi objek, kaedah indexOf tidak memperoleh hasil carian yang sepadan melalui perbandingan mendalam, tetapi hanya membandingkan rujukan unsur yang sepadan.

4 sambungan tatasusunan

Gunakan concat. Sila ambil perhatian bahawa tatasusunan baharu akan dijana selepas menggunakan concat.


Salin kod Kod adalah seperti berikut:
var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
var array3 = array1.concat(array2); // Selepas melaksanakan penggabungan tatasusunan, tatasusunan baharu akan dibuat
console.log(array3);
5 jenis operasi senarai
Untuk menambah elemen, anda boleh menggunakan push dan unshift masing-masing, dan untuk mengalih keluar elemen, anda boleh menggunakan pop dan shift masing-masing.


Salin kod Kod adalah seperti berikut:
// push/pop/shift/unshift
tatasusunan var = [2, 3, 4, 5];
//Tambah pada penghujung tatasusunan

array.push(6);
console.log(array); // [2, 3, 4, 5, 6]

//Tambah pada kepala tatasusunan

array.unshift(1);
console.log(array); // [1, 2, 3, 4, 5, 6]

//Alih keluar elemen terakhir

var elementOfPop = array.pop();
console.log(elementOfPop); // 6
console.log(array); // [1, 2, 3, 4, 5]

//Alih keluar elemen pertama

var elementOfShift = array.shift();
console.log(elementOfShift); // 1
console.log(array); // [2, 3, 4, 5]

6 kaedah sambatan

Dua kegunaan utama:
① Tambah dan padam elemen dari tengah tatasusunan
② Dapatkan tatasusunan baharu daripada tatasusunan asal

Sudah tentu, kedua-dua penggunaan digabungkan sekali gus Beberapa adegan memfokuskan pada penggunaan pertama, dan beberapa menumpukan pada penggunaan kedua.

Tambah dan padam elemen dari tengah tatasusunan Kaedah sambatan menambah elemen pada tatasusunan Parameter berikut perlu disediakan
① Indeks permulaan (iaitu, tempat anda ingin mula menambah elemen)
② Bilangan elemen yang akan dipadamkan atau bilangan elemen yang akan diekstrak (parameter ini ditetapkan kepada 0 apabila menambah elemen)
③ Elemen yang anda ingin tambahkan pada tatasusunan

Salin kod Kod adalah seperti berikut:
var nums = [1, 2, 3, 7, 8, 9 ];
nums.splice(3, 0, 4, 5, 6);
console.log(nombor); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
// Kemudian lakukan operasi pemadaman atau ekstrak tatasusunan baharu
var newnums = nums.splice(3, 4);
console.log(nombor); // [1, 2, 3, 8, 9]
console.log(newnums); // [4, 5, 6, 7]

7 Isih

Terutamanya memperkenalkan dua kaedah: songsang dan isihan. Pembalikan tatasusunan menggunakan terbalik, dan kaedah isihan boleh digunakan bukan sahaja untuk pengisihan mudah, tetapi juga untuk pengisihan kompleks.

Salin kod Kod adalah seperti berikut:
//Terbalikkan tatasusunan
tatasusunan var = [1, 2, 3, 4, 5];
array.reverse();
console.log(array); // [5, 4, 3, 2, 1]
Kami mula-mula menyusun tatasusunan elemen rentetan
var arrayOfNames = ["David", "Mike", "Cynthia", "Clayton", "Bryan", "Raymond"];
arrayOfNames.sort();
console.log(arrayOfNames); // ["Bryan", "Clayton", "Cynthia", "David", "Mike", "Raymond"]

Kami mengisih pelbagai elemen angka
Salin kod Kod adalah seperti berikut:
// Jika elemen tatasusunan adalah daripada jenis angka, hasil pengisihan bagi kaedah sort() tidak boleh sangat memuaskan
var nums = [3, 1, 2, 100, 4, 200];
nums.sort();
console.log(nombor); // [1, 100, 2, 200, 3, 4]

Kaedah isihan mengisih unsur-unsur dalam susunan leksikografi, jadi ia mengandaikan bahawa unsur-unsur adalah semua jenis rentetan, jadi walaupun unsur-unsur adalah jenis angka, ia dianggap sebagai jenis rentetan. Pada masa ini, anda boleh lulus dalam fungsi perbandingan saiz apabila memanggil kaedah Apabila mengisih, kaedah sort() akan membandingkan saiz dua elemen dalam tatasusunan berdasarkan fungsi ini untuk menentukan susunan keseluruhan tatasusunan.
Salin kod Kod adalah seperti berikut:
var compare = function(num1, num2) {
Kembalikan nombor1 > };
nums.sort(compare);
console.log(nombor); // [1, 2, 3, 4, 100, 200]
var objInArray = [

{
         nama: 'raja',
          lulus: '123',
indeks: 2
},
{
          nama: 'raja1',
Lulus: '234',
indeks: 1
}
];
// Isih elemen objek dalam tatasusunan dalam susunan menaik mengikut indeks
var compare = function(o1, o2) {
Kembalikan o1.index > o2.index;
};
objInArray.sort(compare);
console.log(objInArray[0].index < objInArray[1].index); // true

8 kaedah Iterator

Terutamanya termasuk untukSetiap dan setiap, beberapa dan peta, penapis

Saya percaya semua orang tahu untukSetiap, dan saya akan memperkenalkan empat kaedah lain.
Setiap kaedah menerima fungsi yang mengembalikan nilai Boolean dan menggunakan fungsi itu pada setiap elemen dalam tatasusunan. Kaedah ini mengembalikan benar jika fungsi mengembalikan benar untuk semua elemen.

Salin kod Kod adalah seperti berikut:
var nums = [2, 4, 6, 8];
//Kaedah lelaran yang tidak menjana tatasusunan baharu
var isEven = function(num) {
Pulangan nombor % 2 === 0;
};
// Hanya mengembalikan benar jika kesemuanya ialah nombor genap
console.log(nums.every(isEven)); // benar

Sesetengah kaedah juga menerima fungsi yang nilai pulangannya adalah jenis Boolean Selagi terdapat elemen yang menyebabkan fungsi itu kembali benar, kaedah itu mengembalikan benar.
var isEven = function(num) {
Pulangan nombor % 2 === 0;
};
var nums1 = [1, 2, 3, 4];
console.log(nums1.some(isEven)); // benar

Kedua-dua kaedah peta dan penapis boleh menjana tatasusunan baharu Tatasusunan baharu yang dikembalikan oleh peta adalah hasil daripada menggunakan fungsi pada elemen asal. Seperti:

Salin kod Kod adalah seperti berikut:
var up = function(gred) {
Pulangan gred = 5;
}
gred var = [72, 65, 81, 92, 85];
var newGrades = grades.ma

Kaedah penapis sangat serupa dengan setiap kaedah, menghantar dalam fungsi yang nilai pulangannya ialah jenis Boolean. Berbeza daripada kaedah every(), apabila fungsi digunakan pada semua elemen dalam tatasusunan dan hasilnya benar, kaedah ini tidak mengembalikan benar, tetapi mengembalikan tatasusunan baharu yang mengandungi hasil penggunaan fungsi.
Salin kod Kod adalah seperti berikut:
var isEven = function(num) {
Pulangan nombor % 2 === 0;
};
var isOdd = function(num) {
Pulangan nombor % 2 !== 0;
};
var nums = [];
untuk (var i = 0; i < 20; i ) {
nombor[i] = i 1;
}
var evens = nums.filter(isEven);
console.log(evens); // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
var odds = nums.filter(isOdd);
console.log(odds); // [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

3. Ringkasan

Terdapat juga masalah bahawa beberapa kaedah di atas tidak disokong oleh penyemak imbas peringkat rendah dan kaedah lain perlu digunakan untuk pelaksanaan yang serasi.

Ini adalah kaedah biasa yang mungkin tidak mudah untuk difikirkan oleh semua orang. Anda mungkin ingin memberi lebih perhatian kepadanya.

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
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