簡體   English   中英

使用lodash將對象轉換為數組

[英]Convert object to array using lodash

我需要獲得這樣的數組

[
  "CD_DIRECAO",
  "DT_INI_DIRECAO",
  "CD_DEPT",
  "DT_INI_DEPT"
]

從這個對象數組

[
    {
      "CD_DIRECAO": "400"
    },
    {
      "DT_INI_DIRECAO": "1900-01-01"
    },
    {
      "CD_DEPT": "370"
    },
    {
      "DT_INI_DEPT": "1900-01-01"
    }
]

您可以使用具有擴展語法... map()Object.keys方法。

 const data = [{"CD_DIRECAO":"400"},{"DT_INI_DIRECAO":"1900-01-01"},{"CD_DEPT":"370"},{"DT_INI_DEPT":"1900-01-01"}] const result = [].concat(...data.map(Object.keys)) console.log(result) 

使用ES6,您可以使用Object#assign和spread來合並對象,然后使用Object#keys獲取密鑰:

 const arr = [{"CD_DIRECAO":"400"},{"DT_INI_DIRECAO":"1900-01-01"},{"CD_DEPT":"370"},{"DT_INI_DEPT":"1900-01-01"}]; const obj = Object.keys(Object.assign({}, ...arr)); console.log(obj); 

使用lodash,您可以使用flatMapkeys

let result = _.flatMap(data, _.keys);

這可能看起來有點怪異,但可以提供正確的輸出

    const data = [
        {
          "CD_DIRECAO": "400"
        },
        {
          "DT_INI_DIRECAO": "1900-01-01"
        },
        {
          "CD_DEPT": "370"
        },
        {
          "DT_INI_DEPT": "1900-01-01"
        }
    ];

const newData = data.map(item => _.keys(item)).map(item => item[0]);
console.log(newData); 

這將輸出為[ 'CD_DIRECAO', 'DT_INI_DIRECAO', 'CD_DEPT', 'DT_INI_DEPT' ]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM