繁体   English   中英

Map Javascript中arrays的数组的每个数组的第一个元素

[英]Map the first element of each array of an array of arrays in Javascript

我有一个 arrays 的数组,如下所示:

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的第一个elementn,即外部数组的元素。

 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); 

您的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); 

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

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

您应该在每次迭代中仅返回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); 

这可能是最短的答案:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM