我有一个多维数组:
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/