如何将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' } };
我尝试过使用数组、创建类、Array.join((、创建多个字符串和连接。我也尝试过创建键-对象-值对,但似乎无法成功创建。
一般目标是获取State和Color变量的列表,将它们传递到一类键:对象-值对中,然后将这个新的实例化对象添加到一个列表中,然后该列表将以与提供的示例代码相同的语法传递到变量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属性访问者文档
var StateStyles = {};
$.each(data, function (i, item) {
StateStyles[item.state] = { fill: item.color };
);
我感谢大家的帮助。我从特林科特和Andrew Babin那里了解到了缺失的东西;我不得不用括号分配一把钥匙。现在我有一个对象,里面有多个对象。我不知道这是可以做到的。
相关文章:
- 用逗号分隔返回结果中的对象
- 在 Javascript 中将逗号分隔值转换为 JSON 对象
- 在Angular.JS-ng隐藏vs过滤器中将对象分隔为两组
- 将JSON对象转换为javascript中的逗号分隔值
- 将制表符分隔文件中的值传递给Google Maps对象
- 将逗号分隔的对象转换为INT以进行计算
- 在 Javascript 中将对象连接为空格分隔字符串的最简单方法是什么?
- 用Angular/Javascript中的成对值分隔数组中的对象
- 使用冲突的事件侦听器将对象分隔到原型链中
- jQuery逗号分隔的字符串到对象映射
- 对具有点分隔数字的属性的对象数组进行排序
- 分隔 JSON 对象的值
- 如何将逗号分隔的 JSON 对象转换为对象
- 如何将具有键和值的对象分隔到两个数组中
- 将带有分隔键的对象转换为嵌套对象
- 分隔嵌套的 JSON 对象
- 从具有不同值的逗号分隔JSON对象填充html下拉列表
- 返回对象数组的逗号分隔值的简单方法
- 使用jquery或javascript将逗号分隔的键和值字符串转换为对象
- 检查对象中逗号分隔的字符串