Tatasusunan JavaScript

JavaScript Array

JavaScript Array boleh mengandungi sebarang jenis data dan mengakses setiap elemen melalui indeks.

Untuk mendapatkan panjang Array, akses atribut length secara terus:

var arr = [1, 2, 3.14, 'Hello', null, true];
arr.length; // 6

Sila ambil perhatian bahawa memberikan nilai baharu secara langsung kepada panjang Array akan menyebabkan saiz Array berubah:

var arr = [1, 2, 3];
arr.length; // 3
arr.length = 6;
arr; // arr变为[1, 2, 3, undefined, undefined, undefined]
arr.length = 2;
arr; // arr变为[1, 2]

Array boleh mengubah suai elemen yang sepadan kepada nilai baharu melalui indeks Oleh itu, memberikan nilai kepada indeks Array akan mengubah suai Array secara langsung:

var arr = ['A', 'B', 'C'];
arr[1] = 99;
arr; // arr现在变为['A', 99, 'C']

Sila ambil perhatian bahawa jika indeks. melebihi julat apabila menetapkan nilai melalui indeks, Ia juga akan menyebabkan perubahan dalam saiz Tatasusunan:

var arr = [1, 2, 3];
arr[5] = 'x';
arr; // arr变为[1, 2, 3, undefined, undefined, 'x']

Kebanyakan bahasa pengaturcaraan lain tidak membenarkan perubahan langsung kepada saiz tatasusunan, dan keluar akses -of-bounds kepada indeks akan melaporkan ralat. Walau bagaimanapun, JavaScript Array tidak mempunyai sebarang ralat. Apabila menulis kod, tidak disyorkan untuk mengubah suai secara langsung saiz Array Apabila mengakses indeks, pastikan indeks tidak keluar dari had.

indexOf

Serupa dengan String, Array juga boleh mencari kedudukan elemen tertentu melalui indexOf():

var arr = [10, 20, '30', 'xyz'];
arr.indexOf(10); // 元素10的索引为0
arr.indexOf(20); // 元素20的索引为1
arr.indexOf(30); // 元素30没有找到,返回-1
arr.indexOf('30'); // 元素'30'的索引为2

Nota, nombor 30 dan rentetan '30' adalah elemen yang berbeza.

slice

slice() ialah versi substring() String Ia memintas beberapa elemen Array dan kemudian mengembalikan Array baharu:

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
arr.slice(3); // 从索引3开始到结束: ['D', 'E', 'F', 'G']
< 🎜. >Perhatikan bahawa parameter mula dan akhir slice() termasuk indeks permulaan dan tidak termasuk indeks akhir.

Jika anda tidak menghantar sebarang parameter untuk dihiris(), ia akan memintas semua elemen dari awal hingga akhir. Dengan menggunakan ini, kita boleh menyalin Array dengan mudah:

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
var aCopy = arr.slice();
aCopy; // ['A', 'B', 'C', 'D', 'E', 'F', 'G']
aCopy === arr; // false

push and pop

push() menambah beberapa elemen pada penghujung Array, dan pop() Delete elemen terakhir Array:

var arr = [1, 2];
arr.push('A', 'B'); // 返回Array新的长度: 4
arr; // [1, 2, 'A', 'B']
arr.pop(); // pop()返回'B'
arr; // [1, 2, 'A']
arr.pop(); arr.pop(); arr.pop(); // 连续pop 3次
arr; // []
arr.pop(); // 空数组继续pop不会报错,而是返回undefined
arr; // []

unshift and shift

Jika anda ingin menambah beberapa elemen pada head Array, gunakan kaedah unshift(), shift( ) kaedah memadamkan elemen pertama Array:

var arr = [1, 2];
arr.unshift('A', 'B'); // 返回Array新的长度: 4
arr; // ['A', 'B', 1, 2]
arr.shift(); // 'A'
arr; // ['B', 1, 2]
arr.shift(); arr.shift(); arr.shift(); // 连续shift 3次
arr; // []
arr.shift(); // 空数组继续shift不会报错,而是返回undefined
arr; // []

sort

sort() boleh mengisih Array semasa, dan ia akan mengubah suai kedudukan Elemen semasa secara langsung , apabila dipanggil terus, diisih mengikut susunan lalai:

var arr = ['B', 'C', 'A'];
arr.sort();
arr; // ['A', 'B', 'C']

Bolehkah ia diisih mengikut susunan yang ditentukan oleh kami? Sudah tentu, kita akan membincangkannya dalam fungsi berikut.

reverse

reverse() mengalih keluar elemen keseluruhan Array, iaitu, membalikkan:

var arr = ['one', 'two', 'three'];
arr.reverse(); 
arr; // ['three', 'two', 'one']

splice< . concat

kaedah concat()

menyambungkan Array semasa kepada Array lain dan mengembalikan Array baharu:

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
// 从索引2开始删除3个元素,然后再添加两个元素:
arr.splice(2, 3, 'Google', 'Facebook'); // 返回删除的元素 ['Yahoo', 'AOL', 'Excite']
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
// 只删除,不添加:
arr.splice(2, 2); // ['Google', 'Facebook']
arr; // ['Microsoft', 'Apple', 'Oracle']
// 只添加,不删除:
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']
Sila ambil perhatian bahawa kaedah concat( ) tidak mengubah suai Array semasa, tetapi mengembalikan Array baharu.

Malah, kaedah concat() boleh menerima sebarang bilangan elemen dan Array, dan secara automatik memisahkan Array, dan kemudian menambah semuanya pada Array baharu:

var arr = ['A', 'B', 'C'];
var added = arr.concat([1, 2, 3]);
added; // ['A', 'B', 'C', 1, 2, 3]
arr; // ['A', 'B', 'C']

sertai

Kaedah join() ialah kaedah yang sangat praktikal Ia menghubungkan setiap elemen Tatasusunan semasa dengan rentetan yang ditentukan, dan kemudian mengembalikan rentetan yang disambungkan:

.
var arr = ['A', 'B', 'C'];
arr.concat(1, 2, [3, 4]); // ['A', 'B', 'C', 1, 2, 3, 4]

Jika elemen Array bukan rentetan, ia akan ditukar secara automatik kepada rentetan sebelum penyatuan.

Tatasusunan berbilang dimensi

Jika elemen tatasusunan juga merupakan Tatasusunan, tatasusunan berbilang dimensi boleh dibentuk, contohnya:

rreee

Array di atas mengandungi 3 elemen, dua yang pertama adalah Arrays sendiri.


Meneruskan pembelajaran
||
<html> <body> <script type="text/javascript"> var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "<br />") document.write(arr.sort()) </script> </body> </html>
  • Cadangan kursus
  • Muat turun perisian kursus