Javascript 展平数组并放弃嵌套值
我试图展平数组,同时也从嵌套数组中丢弃值 输入:Javascript 展平数组并放弃嵌套值,javascript,arrays,multidimensional-array,nested,Javascript,Arrays,Multidimensional Array,Nested,我试图展平数组,同时也从嵌套数组中丢弃值 输入: [ ["E:", 6533960335360], ["J:", 4493794811904], ["I:", 4407296360448], ["F:", 3380793327616], ["G:", 3212201390080], ["H:", 1704758915072], ["C:", 440328122368], ["K:", 54324703232], ["D:", 188514304] ] 期望输
[
["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数组=[[E:,6533960335360],“J:,4493794811904],“I:,4407296360448],“F:,3380793327616],“G:,3212201390080],“H:,1704758915072],“C:,440328122368],“K:,54324703232],“D:,188514304]]
结果=array.map(([value])=>value);
控制台日志(结果)
您可以使用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(结果)
回答:
您可以使用映射/数组转换,因为您的数据已经是可转置格式
[...new Map(data).keys()]
或者不使用排列
操作符
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];
让结果=[…新映射(数据).keys()];
控制台日志(结果)
这个方法比使用map
方法更快/更有效吗?@oldboy我想一个直数组map
可能更快,尽管差别可能可以忽略不计。这只是一个可用的替代方法,而不是已经发布的方法。