【问题标题】:Map the first element of each array of an array of arrays in Javascript在Javascript中映射数组数组的每个数组的第一个元素
【发布时间】:2018-05-05 01:02:37
【问题描述】:

我有一个这样的数组:

myData = [
          ["name1", 34.1, 43.1, 55.2],
          ["name2", 5.3, 23.6, 40.9],
          ["name3", 43.5, 77.8, 22.4]
         ];

我想得到一个只包含每个数组的第一个元素的数组,如下所示:["name1", "name2", "name3"]

我尝试这样做但没有用:

var arrayTitle = myData.map(function(x) {
    return [myData[x][0]];
});

有什么建议吗?

【问题讨论】:

  • x 是数组的元素,而不是索引。并且不要将返回值包装在数组中[]

标签: javascript arrays loops


【解决方案1】:

您可以只返回x 的第一个元素,即外部数组的一个元素。

var myData = [["name1", 34.1, 43.1, 55.2], ["name2", 5.3, 23.6, 40.9], ["name3", 43.5, 77.8, 22.4]],
    arrayTitle = myData.map(function(x) {
        return x[0];
    });

console.log(arrayTitle);

【讨论】:

    【解决方案2】:

    您的x 本身就是一个数组。所以你不需要再去触摸里面的 myData 了。

    var arrayTitle = myData.map(function(x) {
        return x[0];
    });
    

    或使用传统循环

    myData = [
              ["name1", 34.1, 43.1, 55.2],
              ["name2", 5.3, 23.6, 40.9],
              ["name3", 43.5, 77.8, 22.4]
             ];
    
    
    var arrayTitle = [];
    
    for(var k in myData)
     arrayTitle.push(myData[k][0]);
     
     console.log(arrayTitle);

    【讨论】:

    • for...in... 用于对象
    • for...in... 将返回数组的索引。它返回对象的键。
    【解决方案3】:

    使用您的实际代码return [myData[x][0]],您将返回undefined,因为x 是迭代项,所以它是array 而不是索引。

    并且在这里使用包装 [] 是没有用的,它是一种破坏性的语法,我们在这里不需要它。

    您应该只在每次迭代中返回 item[0]

    var res = myData.map(function(arr) {
      return arr[0];
    });
    

    演示:

    myData = [
      ["name1", 34.1, 43.1, 55.2],
      ["name2", 5.3, 23.6, 40.9],
      ["name3", 43.5, 77.8, 22.4]
    ];
    
    
    var res = myData.map(function(arr) {
      return [arr[x][0]];
    });
    console.log(res);

    【讨论】:

      【解决方案4】:

      这可能是最短的答案:

      var res = myData.map(a => a[0])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-06
        • 2021-08-18
        相关资源
        最近更新 更多