如何将Javascript对象列表动态创建为逗号分隔的对象

如何将Javascript对象列表动态创建为逗号分隔的对象,javascript,jquery,Javascript,Jquery,如何在Javascript中的另一个对象中创建以逗号分隔的对象列表?至少这是我想做的 我期待的最终结果是: var endresult = { 'MD': { fill: 'yellow' }, 'VA': { fill: 'blue' }, 'IL': { fill: 'red' }, 'SC': { fill: 'green' } }; 我尝试过使用数组、创建类、Array.join()、创建多个字符串和连接。我也尝试过创建关键对象-值对,但似乎无法成功创建一个 一般目标是获取一个状态和颜

如何在Javascript中的另一个对象中创建以逗号分隔的对象列表?至少这是我想做的

我期待的最终结果是:

var endresult = { 'MD': { fill: 'yellow' }, 'VA': { fill: 'blue' }, 'IL': { fill: 'red' }, 'SC': { fill: 'green' } };
我尝试过使用数组、创建类、Array.join()、创建多个字符串和连接。我也尝试过创建关键对象-值对,但似乎无法成功创建一个

一般目标是获取一个状态和颜色变量列表,将它们传递到一个key:object-value对类中,然后将这个新实例化的对象添加到一个列表中,该列表将以与提供的示例代码相同的语法传递到变量endresult中


提前感谢(我感觉我即将接受教育)

给定两个数组,一个带有状态,另一个带有颜色名称,您可以使用此函数获得最终结果:

功能组合(状态、颜色){
返回颜色。减少((结果、颜色、i)=>
赋值(结果,{[states[i]]:{fill:color},{});
}
//样本数据
变量状态=['MD','VA','IL','SC'];
变量颜色=['黄色'、'蓝色'、'红色'、'绿色'];
//皈依
var结果=组合(状态、颜色);
//输出
控制台日志(结果)
请记住,当您使用Object[key]表示法时,键最终需要是一个字符串,才能按您的意愿工作

尽管如此,如果“fill”是您想要保留的唯一值,您可以通过消除
{fill:'color}
对象并执行
{LA:'blue',…}
来简化对象

见:


我感谢大家的帮助。我从特林科特和安德鲁·巴宾那里学到了所缺少的东西;我必须用括号指定一把钥匙。现在我有一个对象,其中包含多个对象。我不知道这是可以做到的

请发布一个您想要转换的数据示例,这与jQuery有什么关系?请编辑问题,提供所有需要的信息,并确保我们在同一页上,以便您得到适当的答案。@RobertRocha我认为jQuery可以帮助解决问题。这些答案让我找到了正确的方向。谢谢var StateStyles={};$。每个(数据,函数(i,项){StateStyles[item.state]={fill:item.color};);不客气。如果我知道
数据的结构,我会定制解决方案。但很高兴看到你得到了;-)我想这就是我在描述问题时遇到的问题。我不知道对象的结构可以定义键。
var colors = {LA: {fill: 'blue'}};
colors['MA'] = {fill: 'red'};
//colors is now === {LA: {fill: 'blue'}, MA: {fill: 'red'}};
var StateStyles = {};

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