![](/img/trans.png)
[英]Convert array of values to array of objects (key-value) pairs in JavaScript
[英]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.