如何从数组中的数组的第一个元素创建新数组

Raf*_*fał 7 javascript arrays

如何从这个数组的数组的第一个元素创建新数组?

[["1",2],["3",2],["6",2]] 
Run Code Online (Sandbox Code Playgroud)

我希望它是

['1', '3', '6'] 
Run Code Online (Sandbox Code Playgroud)

我的尝试:

[["1",2],["3",2],["6",2]] 
Run Code Online (Sandbox Code Playgroud)

Kob*_*obe 8

您可以只使用一个简单的map并解构第一个元素:

const arr = [["1", 2],["3", 2],["6", 2]]
console.log(arr.map(([e]) => e))
Run Code Online (Sandbox Code Playgroud)

所述([e])的,之前部分=>解构使用数组解构参数。这意味着对于传递给map回调的每个子e数组,接收子数组的第一个元素的值。在 ES5 及更早版本中,([e]) => e箭头函数是function(entry) { return entry[0]; }

尽管如此,如果你仍然不理解这个概念,更喜欢效率,或者只想回到基础,你可以使用可信赖的 for 循环,确保只推送每个子数组的第一个元素:

const arr = [["1", 2],["3", 2],["6", 2]]

const output = []
for (let i = 0; i < arr.length; i++) {
  output.push(arr[i][0])
}

console.log(output)
Run Code Online (Sandbox Code Playgroud)

  • @mplungjan - 是的,我也认为它丢失了,所以我添加了它。:-) 科比,希望你不介意。 (4认同)

Sau*_*wal 2

尝试这个:

let arr = [["1", 2], ["3", 2], ["6", 2]];
let res = arr.map(val => {
    return val[0]
})
console.log(res);
Run Code Online (Sandbox Code Playgroud)

  • @SaurabhAgrawal - 我认为 mplungjan 指出您可以在那里使用简洁的箭头函数而不是冗长的函数:`.map(val =&gt; val[0])`。(是的,您编辑掉的“()”也是可选的,但我认为这不是要点。) (2认同)
  • @SaurabhAgrawal - 不,他们没有。它们纯粹是箭头函数参数列表语法的一部分。当只有一个参数时,它们是可选的。它对于函数的执行没有任何区别。 (2认同)