【问题标题】:Get values from multidimensional arrays using javascript [duplicate]使用javascript从多维数组中获取值[重复]
【发布时间】:2021-12-01 17:30:58
【问题描述】:

假设我有一个这样的数组

Let data = [ [bob,male,90,pass][sam,male,70,pass][grace,female,75,pass][harry,male,20,fail] ]

我想提取所有名称并将它们存储在一个单独的数组中,那么我该怎么做呢? 意味着输出应该是这样的

[bob,sam,grace,harry]

【问题讨论】:

  • 到目前为止你有什么尝试??
  • 您的示例不是有效的 javascript 数组

标签: javascript node.js arrays loops multidimensional-array


【解决方案1】:

1)你可以在这里使用map进行解构

let data = [
  ["bob", "male", 90, "pass"],
  ["sam", "male", 70, "pass"],
  ["grace", "female", 75, "pass"],
  ["harry", "male", 20, "fail"],
];

const result = data.map(([name]) => name);
console.log(result);

2)map 与索引一起使用

let data = [
  ["bob", "male", 90, "pass"],
  ["sam", "male", 70, "pass"],
  ["grace", "female", 75, "pass"],
  ["harry", "male", 20, "fail"],
];

const result = data.map((arr) => arr[0]);
console.log(result);

【讨论】:

    【解决方案2】:

    使用 for 循环和 switch:

    // data array
    let data = [
      ['bob','male',90,true],
      ['sam','male',70,true],
      ['grace','female',75,true],
      ['harry','male',20,false]
    ];
    
    // instantiate sorted arrays
    let names = [];
    let gender = [];
    let age = [];
    let pass = [];
    
    // iterate on the array containing arrays
    for (let x = 0; x < data.length; x++) {
      // iterate inside the arrays
      for (let y = 0; y < data[x].length; y++) {
        // curData store the data we just now are looking at
        // while iterating through all the data
        curData = data[x][y];
        // depending on y, save the data to the correct array
        switch (y) {
          case 0:
            names.push(curData);
            break;
          case 1:
            gender.push(curData);
            break;
          case 2:
            age.push(curData);
            break;
          case 3:
            pass.push(curData);
            break;
        }
      }
    }
    
    // print them out
    console.log(names);
    console.log(gender);
    console.log(age);
    console.log(pass);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-01
      • 2021-10-17
      • 1970-01-01
      • 2021-08-15
      • 2023-03-03
      • 2012-05-03
      • 1970-01-01
      相关资源
      最近更新 更多