[英]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', ...}
。
看到:
var StateStyles = {};
$.each(data, function (i, item) {
StateStyles[item.state] = { fill: item.color };
);
我很感激大家的幫助。我從trincot和Andrew Babin那里得知了什么; 我必須使用括號分配一個鍵。 現在我有一個包含多個對象的對象。 不知道可以做到的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.