javascript - 如何提取多维数组中每个子数组的第一个元素?

标签 javascript multidimensional-array google-apps-script

我有一个多维数组:

var array 1 = 

[

 [[Name 1, 2, Nigeria], 
  [Name 3, 52, Egypt], 
  [Name 5, 75, South Africa]]

 [[Name 5, 8, Nigeria], 
  [Name 1, 62, Egypt], 
  [Name 3, 115, South Africa]]

 [[Name 6, 88, Nigeria], 
  [Name 3, 92, Egypt], 
  [Name 5, 825, South Africa]]

 ]

我想要一个新的平面数组:

var array 2 = [Name 1, Name 3, Name 5, Name 5, Name 1, Name 3, Name 6, Name 3, Name 5]

我尝试编写一个映射数组并返回第一个元素的函数:

function name(filteredName){
filteredName.map(function(firstName){
  return firstName[0]
}) 

}

但是,这只会返回:

[Name 1, Name 1, Name 1] 

我真的不知道如何解决这个问题!任何帮助都会很棒。

最佳答案

您可以使用嵌套的map(),然后使用flat()

var arr = [ [['Name 1', 2, 'Nigeria'], ['Name 3', 52, 'Egypt'], ['Name 5', 75, 'South Africa']], [['Name 5', 8, 'Nigeria'], ['Name 1', 62, 'Egypt'], ['Name 3', 115, 'South Africa']], [['Name 6', 88, 'Nigeria'], ['Name 3', 92, 'Egypt'], ['Name 5', 825, 'South Africa']] ];
 
   const res = arr.map(x => x.map(a => a[0])).flat(2)
   console.log(res)

没有flat()

您可以在不使用 flat() 的情况下使用 concat() 和展开运算符来完成此操作。

var arr = [ [['Name 1', 2, 'Nigeria'], ['Name 3', 52, 'Egypt'], ['Name 5', 75, 'South Africa']], [['Name 5', 8, 'Nigeria'], ['Name 1', 62, 'Egypt'], ['Name 3', 115, 'South Africa']], [['Name 6', 88, 'Nigeria'], ['Name 3', 92, 'Egypt'], ['Name 5', 825, 'South Africa']] ];
 
 const res = [].concat(...arr.map(x => x.map(x => x[0])))
 console.log(res)

关于javascript - 如何提取多维数组中每个子数组的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56113102/

相关文章:

javascript - youtube api 除了代码片段之外的任何部分参数都不起作用

google-apps-script - 直接指定嵌套文件夹?

google-apps-script - 如何更改应用程序脚本所有者?

google-apps-script - 如何将google脚本执行时间限制为1分钟?

javascript - ngrx-默认值被传播运算符覆盖了吗?

javascript - 谷歌地图与 Cordova /phonegap中的图像叠加

ios - Swift iOS - 将数组过滤成类似对象的数组

PHP 返回匹配键名和值的数组

java - 二维数组中的搜索功能崩溃 (Java)

javascript - 如何使用 moment.js 格式化 future 的日期和时间?