Tableau JavaScript

JavaScript Array

JavaScript Array peut contenir n'importe quel type de données et accéder à chaque élément via un index.

Pour obtenir la longueur du Tableau, accédez directement à l'attribut length :

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

Attention, attribuer directement une nouvelle valeur à la longueur du Tableau entraînera une modification de la taille du Tableau :

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 peut modifier l'élément correspondant à une nouvelle valeur via l'index. Par conséquent, attribuer une valeur à l'index du tableau modifiera directement le tableau :

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

Veuillez noter que si l'index. dépasse la plage lors de l'attribution d'une valeur via l'index, cela entraînera également des modifications de la taille du tableau :

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

La plupart des autres langages de programmation n'autorisent pas les modifications directes de la taille du tableau, et hors L'accès -of-bounds à l'index signalera une erreur. Cependant, JavaScript Array ne contient aucune erreur. Lors de l'écriture de code, il n'est pas recommandé de modifier directement la taille du tableau. Lors de l'accès à l'index, assurez-vous que l'index ne sort pas des limites.

indexOf

Semblable à String, Array peut également rechercher la position d'un élément spécifié via 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

Remarque, numéros 30 et la chaîne '30' sont des éléments différents.

slice

slice() est la version substring() de String. Elle intercepte certains éléments de Array puis renvoie un nouveau Array :

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']
< 🎜. > Notez que les paramètres de début et de fin de slice() incluent l'index de début et n'incluent pas l'index de fin.

Si vous ne transmettez aucun paramètre à slice(), il interceptera tous les éléments du début à la fin. En utilisant cela, nous pouvons facilement copier un tableau :

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() ajoute plusieurs éléments à la fin du tableau, et pop() Supprimer le dernier élément de 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 et shift

Si vous souhaitez ajouter plusieurs éléments en tête de Array, utilisez la méthode unshift(), shift( ) supprime le premier élément du tableau :

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() peut trier le tableau actuel et modifiera directement la position actuelle de l'élément du tableau. , lorsqu'il est appelé directement, est trié selon l'ordre par défaut :

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

Peut-il être trié dans l'ordre spécifié par nous-mêmes ? Absolument, nous en parlerons dans les fonctions suivantes.

reverse

reverse() supprime les éléments de l'ensemble du tableau, c'est-à-dire inverse :

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

splice

La méthode splice() est une "méthode universelle" pour modifier Array. Elle peut supprimer plusieurs éléments à partir de l'index spécifié, puis ajouter plusieurs éléments à partir de cette position :

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']

concat

la méthode concat() connecte le tableau actuel à un autre tableau et renvoie un nouveau tableau :

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

Veuillez noter que la méthode concat() ne modifie pas le tableau actuel, mais renvoie un nouveau tableau.

En fait, la méthode concat() peut recevoir n'importe quel nombre d'éléments et de tableau, et diviser automatiquement le tableau, puis les ajouter tous à un nouveau tableau :

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

join

La méthode join() est une méthode très pratique. Elle connecte chaque élément du tableau actuel avec la chaîne spécifiée, puis renvoie la chaîne connectée :

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

Si l'élément de Array n'est pas une chaîne, il sera automatiquement converti en chaîne avant la concaténation.

Tableau multidimensionnel

Si un élément du tableau est également un Tableau, un tableau multidimensionnel peut être formé, par exemple :

var arr = [[1, 2, 3], [400, 500, 600], '-'];

Le Array ci-dessus contient 3 éléments, dont les deux premiers sont eux-mêmes des Arrays.


Formation continue
||
<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>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel