JavaScript 多维数组

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册