簡體   English   中英

如何將鍵值對數組轉換為以第一個數組的值作為鍵的對象?

[英]How can I convert an Array of Key Value pairs to object with values of first array as keys?

我的后端返回的數據如下。

   var permissions = [{"PermCode":"BOF","IsvalidPerm":true},{"PermCode":"CM","IsvalidPerm":false},{"PermCode":"CV","IsvalidPerm":true},{"PermCode":"DAS","IsvalidPerm":true},{"PermCode":"RPT","IsvalidPerm":true},{"PermCode":"VM","IsvalidPerm":true}]

我如何將其轉換為Objectof對象,如下所示

{BOF:true,CM:true, ...}

提前致謝。

您可以使用一些ES6語法,使用Object.assign ,spread語法,計算的屬性,然后它實際上具有非常實用的編程風格:

 var permissions = [{"PermCode":"BOF","IsvalidPerm":true},{"PermCode":"CM","IsvalidPerm":false},{"PermCode":"CV","IsvalidPerm":true},{"PermCode":"DAS","IsvalidPerm":true},{"PermCode":"RPT","IsvalidPerm":true},{"PermCode":"VM","IsvalidPerm":true}]; const result = Object.assign(...permissions.map( ({PermCode, IsvalidPerm}) => ({[PermCode]: IsvalidPerm}) )); console.log(result); 

盡管您可以在Array的文檔中找到答案(免責聲明:它是map ),但對於單線而言,語法有點棘手。

干得好 :

 const data = [ {"PermCode":"BOF","IsvalidPerm":true}, {"PermCode":"CM","IsvalidPerm":false}, {"PermCode":"CV","IsvalidPerm":true}, {"PermCode":"DAS","IsvalidPerm":true}, {"PermCode":"RPT","IsvalidPerm":true}, {"PermCode":"VM","IsvalidPerm":true} ]; const formatted = data.map(item => ({[item.PermCode]: item.IsvalidPerm})); console.log(formatted); 

至於編輯,如果要創建對象,請使用reduce

 const data = [ {"PermCode":"BOF","IsvalidPerm":true}, {"PermCode":"CM","IsvalidPerm":false}, {"PermCode":"CV","IsvalidPerm":true}, {"PermCode":"DAS","IsvalidPerm":true}, {"PermCode":"RPT","IsvalidPerm":true}, {"PermCode":"VM","IsvalidPerm":true} ]; const formatted = data.reduce((acc, curr) => ({ ...acc, [curr.PermCode]: curr.IsvalidPerm }), {}); console.log(formatted); 

請始終在OP中顯示您的嘗試,以便我們了解您的移動方向。

您可以使用“ Array.map”和“ Object.assign”,如下所示

 var permissions = [{"PermCode":"BOF","IsvalidPerm":true},{"PermCode":"CM","IsvalidPerm":false},{"PermCode":"CV","IsvalidPerm":true},{"PermCode":"DAS","IsvalidPerm":true},{"PermCode":"RPT","IsvalidPerm":true},{"PermCode":"VM","IsvalidPerm":true}] let result = Object.assign(...permissions.map(d => ({ [d.PermCode]: d.IsvalidPerm}))) console.log(result) 

暫無
暫無

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

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