簡體   English   中英

Javascript動態創建對象數組

[英]Javascript create array of objects dynamically

我有一個JSON響應即

[{"name":"title","value":"STEP-01","translation":"STEP-01"},{"name":"meta_description","value":"","translation":"meta desc"}, ......]

由此,我想動態創建一個對象數組,以便將name作為鍵並將translation作為值,如

data.en = {
  title : 'STEP-01',
  meta-description :     meta desc
}

我試過了,但它創建了一個數組

jsonObj = []

$.each(result, function (index, value) {

             lang_array =   {};
            lang_array[value.name]  =   value.translation;
            jsonObj.push(lang_array);

        })

根據您的示例,您嘗試創建一個JS對象,而不是一個數組。

選項1 :使用Array#reduce收集每個對象的名稱並將其轉換為新對象:

 const data = [{"name":"title","value":"STEP-01","translation":"STEP-01"},{"name":"meta_description","value":"","translation":"meta desc"}]; const result = data.reduce((r, { name, translation }) => { r[name] = translation; return r; }, {}); console.log(result); 

選項2 :使用Array#map創建具有屬性和值的對象的集合,並使用Object#assignspread將它們組合為單個對象:

 const data = [{"name":"title","value":"STEP-01","translation":"STEP-01"},{"name":"meta_description","value":"","translation":"meta desc"}]; const result = Object.assign(...data.map(({ name, translation }) => ({ [name]: translation }))); console.log(result); 

暫無
暫無

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

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