簡體   English   中英

如何動態創建Javascript對象列表到逗號分隔對象

[英]How to dynamically create a list of Javascript objects into comma separated objects

如何在Javascript中的另一個對象中創建逗號分隔的對象列表? 至少那是我認為我想做的事情。

我正在尋找的最終結果是:

var endresult = { 'MD': { fill: 'yellow' }, 'VA': { fill: 'blue' }, 'IL': { fill: 'red' }, 'SC': { fill: 'green' } };

我嘗試過使用Arrays,創建類,Array.join(),創建多個字符串和連接。 我也嘗試過創建關鍵對象值對,但我似乎無法成功創建一個。

一般目標是獲取State和Color變量的列表,將它們傳遞給一組key:object value對,然后將這個新的實例化對象添加到一個列表中,然后將該列表傳遞給變量endresult,其語法與示例代碼提供。

在此先感謝(我有一種感覺,我即將受到教育)。

給定兩個數組,一個具有狀態,另一個具有顏色名稱,您可以使用此函數來獲得最終結果:

 function combine(states, colors) { return colors.reduce( (result, color, i) => Object.assign(result, { [states[i]]: { fill: color } }), {}); } // sample data var states = ['MD', 'VA', 'IL', 'SC']; var colors = ['yellow', 'blue', 'red', 'green']; // convert var result = combine(states, colors); // output console.log(result); 

var colors = {LA: {fill: 'blue'}};
colors['MA'] = {fill: 'red'};
//colors is now === {LA: {fill: 'blue'}, MA: {fill: 'red'}};

請記住,當您使用Object [key]表示法時,鍵最終需要是一個字符串,以便它按您的意圖工作。

但是,如果'fill'是你想要保留的唯一值,你可以通過消除{fill: 'color'}對象來簡化你的對象並做{LA: 'blue', ...}

看到:

Mozilla Property訪問器文檔

var StateStyles = {};

$.each(data, function (i, item) { 
     StateStyles[item.state] = { fill: item.color };
); 

我很感激大家的幫助。我從trincot和Andrew Babin那里得知了什么; 我必須使用括號分配一個鍵。 現在我有一個包含多個對象的對象。 不知道可以做到的。

暫無
暫無

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

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