簡體   English   中英

將狀態數組值轉換為鍵值對

[英]Convert state array values into key-value pairs

我有一個狀態對象數組。 我想將數組內的值轉換為鍵值對

因此,我的狀態如下所示:

0: {emp_code: "a001", company_code: "company_a", name: "abx", details: Array(3), details_dtypes: Array(3)}
1: {emp_code: "b002", company_code: "company_b", name: "xbz ", details: Array(2), details_dtypes: Array(2)}
//and so on adding other values to the array

我想將emp-code和company_code轉換為鍵值對,並像JSON對象一樣顯示; 因此,JSON輸出如下所示:

{
emp_and_company:
{
  "company_a" : ["a001","a002"],
  "company_b" : ["b002","b003"]
}
}

所以我只想將company_code作為鍵並將值作為emp_code

您可以通過Array.reduce以簡潔的方式執行此操作:

 const data = [{ emp_code: "a001", company_code: "company_a", name: "abx", details: [], details_dtypes: [] }, { emp_code: "b002", company_code: "company_b", name: "xbz ", details: [], details_dtypes: [] }, { emp_code: "a002", company_code: "company_a", name: "xbz ", details: [], details_dtypes: [] }, { emp_code: "b003", company_code: "company_b", name: "xbz ", details: [], details_dtypes: [] } ] let result = data.reduce((r,c) => (r[c.company_code] = [...(r[c.company_code] || []), c.emp_code]) && r, {}) console.log(result) 

這是一個更具可讀性的版本:

 const data = [{ emp_code: "a001", company_code: "company_a", name: "abx", details: [], details_dtypes: [] }, { emp_code: "b002", company_code: "company_b", name: "xbz ", details: [], details_dtypes: [] }, { emp_code: "a002", company_code: "company_a", name: "xbz ", details: [], details_dtypes: [] }, { emp_code: "b003", company_code: "company_b", name: "xbz ", details: [], details_dtypes: [] }] let result = data.reduce((acc, obj) => { acc[obj.company_code] = [...(acc[obj.company_code] || []), obj.emp_code] return acc }, {}) console.log(result) 

var output = {};
array.forEach((data) => {
   var prev = output[data['company_code']] || [];
   prev.push(data['emp_code']);
   output[data['company_code']] = prev;
});

暫無
暫無

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

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