繁体   English   中英

展平数组并丢弃嵌套值

[英]Flatten Array and Discard Nested Values

我试图展平一个数组,同时也丢弃嵌套数组中的值。

输入:

[
  ["E:", 6533960335360],
  ["J:", 4493794811904],
  ["I:", 4407296360448],
  ["F:", 3380793327616],
  ["G:", 3212201390080],
  ["H:", 1704758915072],
  ["C:", 440328122368],
  ["K:", 54324703232],
  ["D:", 188514304]
]

期望的输出:

[
  "E:",
  "J:",
  "I:",
  "F:",
  "G:",
  "H:",
  "C:",
  "K:",
  "D:"
]

我知道我可以用[].concat.apply([], nestedArray)来展平数组,但是有没有合适的方法来丢弃过程中不需要的项目?

只需映射值。

 var array = [["E:", 6533960335360], ["J:", 4493794811904], ["I:", 4407296360448], ["F:", 3380793327616], ["G:", 3212201390080], ["H:", 1704758915072], ["C:", 440328122368], ["K:", 54324703232], ["D:", 188514304]] result = array.map(([value]) => value); console.log(result);

您可以使用Array.map()并返回每个子数组的第一项:

 const data = [["E:",6533960335360],["J:",4493794811904],["I:",4407296360448],["F:",3380793327616],["G:",3212201390080],["H:",1704758915072],["C:",440328122368],["K:",54324703232],["D:",188514304]] const result = data.map(([v]) => v) console.log(result)

回答:

您可以使用地图/数组转换转换,因为您的数据已经是可转座的格式。

[...new Map(data).keys()]

或没有spread运算符

Array.from( new Map(data).keys() );

 let data=[["E:",6533960335360],["J:",4493794811904],["I:",4407296360448],["F:",3380793327616],["G:",3212201390080],["H:",1704758915072],["C:",440328122368],["K:",54324703232],["D:",188514304]]; let result = [...new Map(data).keys()]; console.log(result);

暂无
暂无

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

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