【问题标题】:Flatten Array and Discard Nested Values展平数组并丢弃嵌套值
【发布时间】:2020-01-02 22:03:14
【问题描述】:

我正在尝试展平数组同时丢弃嵌套数组中的值。

输入:

[
  ["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) 展平数组,但是有没有适当的方法来丢弃过程中不需要的项目?

【问题讨论】:

    标签: javascript arrays multidimensional-array nested


    【解决方案1】:

    只需映射值。

    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);

    【讨论】:

      【解决方案2】:

      您可以使用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)

      【讨论】:

        【解决方案3】:

        答案:

        您可以使用映射/数组转换转换,因为您的数据已经是可转置格式。

        [...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);

        【讨论】:

        • 这种方法比使用map 方法更快/更有效吗?
        • @oldboy 我想直接数组map 可能会更快,尽管差异可能可以忽略不计。它只是一种可用的替代方法,而不是已发布的方法。
        猜你喜欢
        • 2023-03-09
        • 1970-01-01
        • 2014-05-28
        • 2012-10-31
        • 2017-03-06
        • 2017-07-20
        • 2017-12-26
        • 2019-03-05
        • 1970-01-01
        相关资源
        最近更新 更多