JavaScript 多维数组
JavaScript中没有直接提供多维数组。如果我们想使用类似于多维数组的东西,我们需要通过使用另一个一维数组来创建一个多维数组。所以在JavaScript中,多维数组被称为一个数组中的数组。我们需要把一些数组放在另一个数组中,然后整个东西就像一个多维数组一样工作。这个数组,在其中插入其他数组,被用作我们代码中的多维数组。定义多维数组与定义普通一维数组完全相同。
一维数组:
var arr = []; // Empty 1D array
var arr1 = ["A", "B", "C", "D"] // 1D array contains some alphabets
var arr1 = [1, 2, 3, 4, 5] // 1D array contains some digits
JavaScript
多维数组:
方法1:
1st, need to define some 1D array
var arr1 = ["ABC", 24, 18000];
var arr2 = ["EFG", 30, 30000];
var arr3 = ["IJK", 28, 41000];
var arr4 = ["EFG", 31, 28000];
var arr5 = ["EFG", 29, 35000];
// "salary" defines like a 1D array but it already contains some 1D array
var salary = [arr1, arr2, arr3, arr4, arr5];
JavaScript
在salary数组中,arr1,arr2,… arr5是一些1D数组。
方法2:
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
JavaScript
在这里, salary 数组的工作方式类似于多维数组。这种符号称为数组字面量。
访问salary数组的元素:
- 要访问数组元素,我们需要一个简单的基于索引的标记法
// This notation access the salary of "ABC" person which is 18000,
// [0] selects 1st row, and [2] selects the 3rd element
// of that 1st row which is 18000
salary[0][2];
// Similarly,
salary[3][2]; // Selects 28000
JavaScript
方法1和方法2都使用这种表示法。
- 对于许多迭代,我们需要使用循环来访问元素,
// This loop is for outer array
for (var i = 0, l1 = salary.length; i < l1; i++) {
// This loop is for inner-arrays
for (var j = 0, l2 = salary[i].length; j < l2; j++) {
// Accessing each elements of inner-array
documents.write( salary[i][j] );
}
}
JavaScript
在多维数组中添加元素: 在多维数组中添加元素有两种方式,可以在 内部数组 或 外部数组 中实现。内部数组可以通过两种不同的方式完成。
- 向内部数组添加元素:我们可以使用简单的 方括号 符号将元素添加到多维数组中。
salary[3][3] = "India";
// It adds "India" at the 4th index of 4th sub-array,
// If we print the entire 4th sub-array, document.write(salary[3]);
// the output will be : ["EFG", 31, 28000, "India"]
// indexing starts from 0
JavaScript
- 我们可以使用 push() 方法向数组中添加元素。
salary[3].push("India", "Mumbai");
// It add "India" at the 4th index and "Mumbai" at
// 5th index of 4th sub-array
// If we print the entire 4th sub-array,
// document.write(salary[3]);
// The output will be : ["EFG", 31, 28000, "India", "Mumbai"]
// Indexing starts from 0
JavaScript
- 向外部数组添加元素: 这与之前的方法非常相似。
salary.push(["MNO", 29, 33300]);
// This row added after the last row in the "salary" array
JavaScript
移除多维数组中的元素: 我们可以使用 pop() 方法来移除内部数组中的元素,也可以使用 pop() 方法来移除整个内部数组。
// Remove last element from 4th sub-array
// That is 28000 indexing starts from 0
salary[3].pop();
// Removes last sub-array
// That is "["EFG", 31, 28000]"
salary.pop();
JavaScript
示例1:
<script>
// Prints a simple multidimensional array in JavaScript
var arr1 = ["ABC", 24, 18000];
var arr2 = ["EFG", 30, 30000];
var arr3 = ["IJK", 28, 41000];
var arr4 = ["EFG", 31, 28000];
var arr5 = ["EFG", 29, 35000];
var salary = [arr1, arr2, arr3, arr4, arr5];
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "<br>");
}
</script>
JavaScript
输出:
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
EFG, 29, 35000
JavaScript
示例2:
<script>
// Prints a simple multidimensional array in
// JavaScript with different declaration
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "<br>");
}
</script>
JavaScript
输出:
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
EFG, 29, 35000
JavaScript
示例3:
<script>
// Prints a simple multidimensional array in JavaScript
// where we just print the salary of a specific person
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
console.log("salary of 2nd person : " + salary[1][2] + "<br>");
console.log("salary of 4th person : " + salary[3][2] + "<br>");
</script>
JavaScript
输出:
salary of 2nd person : 30000
salary of 4th person : 28000
JavaScript
示例4:
<script>
// Prints a simple multidimensional array in
// JavaScript where we add elements in the array
// using simple square bracket and push() method
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
// Prints first array
console.log("Original array :<br>");
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "<br>");
}
// Adding "India" at the 4th index of 4th sub array
salary[3][3] = "India";
console.log("<br>after adding \"India\" at the 4th array :<br>");
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "<br>");
}
console.log("<br>after adding \"USA\" and \"Canada\" "
+ "at the 3rd array using \"push()\" method :<br>");
salary[2].push("USA", "Canada");
// Adding "USA" and "Canada" in the 2nd sub-array
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "<br>");
}
</script>
JavaScript
输出:
Original array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
after adding "India" at the 4th array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000, India
after adding "USA" and "Canada" at the 3rd array using "push()" method :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000, USA, Canada
EFG, 31, 28000, India
JavaScript
示例 5:
<script>
// Prints a simple multidimensional array in
// JavaScript where we add a new inner array
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
// Prints first array
console.log("Original array :");
for(var i = 0; i < salary.length; i++) {
console.log(salary[i]);
}
console.log("After adding a new inner array :");
// Pushing a new sub-array
salary.push(["MNO", 29, 33300]);
for(var i = 0; i < salary.length; i++) {
console.log(salary[i]);
}
</script>
JavaScript
输出:
Original array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
After adding a new inner array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
MNO, 29, 33300
JavaScript
示例6:
<script>
// Prints a simple multidimensional array in
// JavaScript where we remove a single element
// and a entire sub-array
var salary = [
["ABC", 24, 18000],
["EFG", 30, 30000],
["IJK", 28, 41000],
["EFG", 31, 28000],
];
// Prints first array
console.log("Original array :");
for(var i = 0; i < salary.length; i++) {
console.log(salary[i]);
}
console.log("After removing last element "
+ "of last inner array :");
// Removes the last element of 3rd sub-array
salary[3].pop();
for(var i = 0; i < salary.length; i++) {
console.log(salary[i] + "");
}
console.log("After removing last inner array :");
// Removes last sub-array
salary.pop();
for(var i = 0; i < salary.length; i++) {
console.log(salary[i]);
}
</script>
JavaScript
输出:
Original array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31, 28000
After removing last element of last inner array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
EFG, 31
After removing last inner array :
ABC, 24, 18000
EFG, 30, 30000
IJK, 28, 41000
JavaScript