对Javascript对象进行分组并插入自定义值
Grouping Javascript objects and inserting custom value
我已经实现了以下
https://jsfiddle.net/f3syta4f/2/function indexByColor (input) {
var output = {};
for (var i in input) {
for (var j in input[i]) {
var x = input[i][j];
if (output[x.color] === undefined) output[x.color] = {
color: x.color,
weight: [],
};
output[x.color].weight.push(x.weight);
};
};
return Object.keys(output).map(function(c){
return output[c];
});
};
输入dataSet[0]= [
{color:"yellow",weight:12,key:0}
,{color:"red",weight:15,key,0}
];
dataSet[1]= [
{color:"yellow",weight:22,key:1}
,{color:"blue",weight:10,key:1}
];
电流输出
an[0]=[{color:"yellow",weight:[12,22]}]
an[1]=[{color:"red",weight:[15]}]
an[2]=[{color:"blue",weight:[10]}]
但是,如果该javascript对象数组中不存在data,则将其添加0。
期望输出值
an[0]=[{color:"yellow",weight:[12,22]}]
an[1]=[{color:"red",weight:[15,0]}]
an[2]=[{color:"blue",weight:[0,10]}]
进一步解释,data[1]
具有blue
的颜色,而data[0]
没有,因此,weight=[0,10]
..0
来自data[0]
, 10
来自data[1]
这将为您工作:
function indexByColor (input) {
var output = {};
for (var i in input) {
for (var j in input[i]) {
var x = input[i][j];
output[x.color] = {
color: x.color,
weight: [],
};
};
};
return Object.keys(output).map(function(c){
for(var i in input) {
var weight = 0;
for(var j in input[i])
if(input[i][j].color == c) {
weight = input[i][j].weight;
break;
}
output[c].weight.push(weight);
}
return output[c];
});
};
(小提琴)编辑:按评论要求…
第一部分只准备输出对象,使用输入结构中所有颜色的并集。
然后,在地图迭代中,检查每个第一级实例是否存在颜色,并且选择权重或将权重默认为0。然后将该值压入权重数组。
相关文章:
- 在plone 5中将自定义的灵活性内容类型插入到tinymce编辑器中
- CKEditor-自定义单词或短语插入功能
- 如果JavaScript标签是通过谷歌标签管理器插入到页面上的,那么它们的延迟程度是多少;s的自定义HTML
- 将自定义下拉菜单添加到 tinyMCE 并插入动态内容
- Angular JS 如何在引导 UI 选项卡中插入自定义指令
- 如何使用AngularJS中的自定义指令将一个html页面插入另一个html页
- 异步插入包含自定义元素的内容
- 如何将原始Javascript插入自定义内容类型的Omega模板
- 如何向副标题插入自定义动态值
- 如何创建一个HTML5自定义验证,检查插入到2个电子邮件inout字段的值是否相同
- 自定义掩码函数不工作时,插入字符在中间Javascript/JQuery
- 在html中创建一个文本框,可自定义,插入的字符串存储在var中
- 如何正确地将JavaScript变量插入自定义跟踪像素
- 如何打印使用自定义对话框插入的值
- 使用JQuery插入自定义的Wordpress表
- 不能在聚合物中动态地向自定义元素插入元素
- 在JS输出中插入自定义文本
- 在HTML页面中定义的自定义小部件使用href加载为dojox.layout.contentpane,并插入为选项卡页面
- 在自定义标签中的URL中插入一个谷歌标签管理器变量
- 对Javascript对象进行分组并插入自定义值