Rumah  >  Artikel  >  hujung hadapan web  >  Penjelasan terperinci tentang pengetahuan yang berkaitan tentang tatasusunan dalam JavaScript_JavaScript

Penjelasan terperinci tentang pengetahuan yang berkaitan tentang tatasusunan dalam JavaScript_JavaScript

WBOY
WBOYasal
2016-05-16 15:48:251336semak imbas

Buat tatasusunan

Pengisytiharan tatasusunan dalam js boleh dilakukan dengan cara berikut:

var arr = [];  // 简写模式
var arr = new Array(); // new一个array对象
var arr = new Array(arrayLength); // new一个确定长度的array对象

Perlu diingatkan:

  • Walaupun kaedah ketiga mengisytiharkan panjang tatasusunan, panjang sebenar tatasusunan adalah berubah-ubah. Dalam erti kata lain, walaupun panjang ditentukan sebagai 5, elemen masih boleh disimpan di luar panjang yang ditentukan, dan panjang tatasusunan juga akan berubah dengan sewajarnya.
  • Selain itu, satu perkara perlu dijelaskan:
  • js ialah bahasa yang ditaip lemah, iaitu jenis elemen dalam tatasusunan tidak perlu sama.

Berikan contoh jenis elemen yang tidak konsisten dalam tatasusunan:

var arr = [1, 2, 3, 4, 'wangzhengyi', 'bululu'];

for (var i = 0; i < arr.length; i ++) {
  console.log(arr[i]);
}

Akses elemen tatasusunan

Nilai indeks tatasusunan JavaScript juga bermula dari 0. Kami boleh mengakses elemen tatasusunan terus melalui subskrip nama tatasusunan.

Kod sampel adalah seperti berikut:

var arr = [1, 2, 3];
console.log(arr[0]);
console.log(arr[1]);

Selain itu, adalah disyorkan untuk menggunakan mod gelung berterusan untuk traversal tatasusunan, dan untuk-masuk tidak disyorkan atas sebab tertentu, sila rujuk: Gelung melalui tatasusunan dalam JavaScript

Kod sampel untuk melintasi tatasusunan adalah seperti berikut:

var arr = [1, 2, 3, 4, 'wangzhengyi', 'bululu'];

for (var i = 0, len = arr.length; i < len; i ++) {
  console.log(arr[i]);
}

Nota:

Dalam kod di atas, pengoptimuman kecil adalah untuk mendapatkan saiz tatasusunan terlebih dahulu, supaya tidak perlu menanyakan saiz tatasusunan setiap kali ia dilalui. Untuk tatasusunan yang sangat besar, ia boleh meningkatkan kecekapan tertentu.

Tambah elemen tatasusunan

Terdapat tiga kaedah untuk menambah elemen baharu pada tatasusunan, iaitu: tolak, nyahshift dan sambung. Di bawah saya akan memperkenalkan ketiga-tiga kaedah ini masing-masing.
tolak

kaedah tolak menambah elemen pada penghujung tatasusunan. Kod sampel adalah seperti berikut:

var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);


for (var i = 0, len = arr.length; i < len; i ++) {
  console.log(arr[i]);
}


Keputusan pelaksanaan ialah:

1
2
3

nyah anjakan

Kaedah unshift menambah elemen pada kepala tatasusunan. Kod sampel adalah seperti berikut:

var arr = [];
arr.unshift(1);
arr.unshift(2);
arr.unshift(3);


for (var i = 0, len = arr.length; i < len; i ++) {
  console.log(arr[i]);
}


Keputusan pelaksanaan adalah seperti berikut:

3
2
1

sambungan

Kaedah splice memasukkan elemen baharu pada kedudukan yang ditentukan dalam tatasusunan, dan elemen sebelumnya secara automatik dialihkan kembali secara berurutan. Ambil perhatian bahawa prototaip fungsi sambatan ialah:

array.splice(index, howMany, element...)

howMany menunjukkan bilangan elemen yang akan dipadamkan Jika anda hanya menambah elemen, howMany perlu ditetapkan kepada 0 pada masa ini.

Kod sampel adalah seperti berikut:

var arr = [1, 2, 3, 4];

arr.splice(1, 0, 7, 8, 9);

for (var i = 0, len = arr.length; i < len; i ++) {
  console.log(arr[i]);
}


Keputusan pelaksanaan adalah seperti berikut:

1
7
8
9
2
3
4


Padamkan elemen tatasusunan

Sama seperti menambahkan elemen pada tatasusunan, terdapat tiga kaedah untuk memadamkan elemen dalam tatasusunan: pop, shift dan splice. Seterusnya, kami akan menerangkan penggunaan ketiga-tiga fungsi ini masing-masing.
pop

Kaedah pop mengalih keluar elemen terakhir dalam tatasusunan. Gabungan push dan pop boleh merealisasikan fungsi tatasusunan yang serupa dengan timbunan (masuk pertama, keluar terakhir). Kod sampel adalah seperti berikut:

var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);

while (arr.length != 0) {
  var ele = arr.pop();
  console.log(ele);
}


anjakan

Kaedah anjakan mengalih keluar elemen pertama dan elemen dalam tatasusunan dialihkan ke hadapan secara automatik. (Kaedah ini pasti sepadan dengan isu kecekapan, dan kerumitan masa ialah O(n)).

var arr = [];
arr.push(1);
arr.push(2);
arr.push(3);

function traverseArray(arr) {
  for (var i = 0, len = arr.length; i < len; i ++) {
    console.log(arr[i]);
  }
}

while (arr.length != 0) {
  var ele = arr.shift();
  traverseArray(arr);
}

Semua orang boleh mempertimbangkan hasilnya sendiri.
sambatan

Apabila menambah elemen tatasusunan, kami bercakap tentang sambatan Terdapat parameter howMany dalam prototaip fungsi ini, yang mewakili bilangan elemen yang dipadamkan bermula dari indeks.
Kod sampel adalah seperti berikut:

var arr = [1, 2, 3, 4, 5, 6, 7];

function traverseArray(arr) {
  for (var i = 0, len = arr.length; i < len; i ++) {
    console.log(arr[i]);
  }
}

arr.splice(1, 3);
traverseArray(arr);

Hasil pelaksanaan ialah:

1
5
7


Menyalin dan memintas tatasusunan

Sebagai contoh, kodnya adalah seperti berikut:

var arr1 = [1, 2, 3, 4];
var arr2 = arr1;

Pada masa ini, arr2 hanya menyimpan alamat tatasusunan arr1 dalam memori timbunan, dan tidak memohon semula untuk ingatan dalam ingatan timbunan untuk mencipta tatasusunan. Jadi pengubahsuaian kepada arr2 akan menjejaskan arr1 pada masa yang sama. Jadi, bagaimana jika kita perlu menyalin tatasusunan? Ini membawa kepada fungsi slice dan concat yang perlu dipelajari.
hiris

Kepingan di sini adalah sama dengan kepingan dalam sintaks python, kedua-duanya mengembalikan kepingan tatasusunan. Prototaip fungsi hirisan ialah:

array.slice(begin, end)

Mengembalikan semua elemen dari mula hingga akhir Nota bahawa permulaan disertakan tetapi penghujung tidak disertakan.
Lalai bermula bermula dari 0 secara lalai. Hujung lalai adalah ke hujung tatasusunan.

Oleh itu, kita boleh menyalin tatasusunan melalui kod berikut:

var arr1 = [1, 2, 3, 4];
var arr2 = arr1.slice();
arr2[2] = 10000
function traverseArray(arr) {
  for (var i = 0, len = arr.length; i < len; i ++) {
    console.log(arr[i]);
  }
}

traverseArray(arr1);
traverseArray(arr2);


Keputusan pelaksanaan adalah seperti berikut:

1
2
3
4
1
2
10000
4


concat

Kaedah concat akan mencipta tatasusunan baharu, dan kemudian meletakkan elemen dalam objek yang memanggilnya (objek yang ditunjuk oleh ini) dan elemen dalam parameter jenis tatasusunan semua parameter dan parameter jenis bukan tatasusunan sendiri ke dalam ini dalam susunan Tatasusunan baharu, dan mengembalikan tatasusunan.

Kod sampel adalah seperti berikut:

var alpha = ["a", "b", "c"];
var number = [1, 2, 3]

// 新数组为["a", "b", "c", 1, 2, 3]
var complex = alpha.concat(number);

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