使用groupBy下划线分组嵌套列表
grouping nested list using groupBy underscore
我有一个列表
data = [{
value1:[1,2],
value2:[{type:'A'}, {type:'B'}]
},{
value1:[3,5],
value2:[{type:'B'}, {type:'B'}]
}]
这是我的列表格式,我希望这个列表格式为
data = [
{type:'A', value: [1,2]},
{type:'B', value: [3,5]}
]
如果您期待下面的结果
data = [
{type:'A', value: [1,2]},
{type:'B', value: [3,5]}
]
这是你想要的
data = [{
value1:[1,2],
value2:[{type:'A'}, {type:'B'}]
},{
value1:[3,5],
value2:[{type:'B'}, {type:'B'}]
}]
data.forEach(function(item, index){
var obj = {};
obj.type = item.value2[0].type;
obj.value = item.value1;
console.log(obj);
})
您可以使用两个forEach()
循环并在第一个forEach()
循环中将object作为thisArg
参数。
var data = [{
value1: [1, 2],
value2: [{
type: 'A'
}, {
type: 'B'
}]
}, {
value1: [3, 5],
value2: [{
type: 'B'
}, {
type: 'B'
}]
}]
var result = [];
data.forEach(function(o, i) {
var that = this;
o.value2.forEach(function(t) {
if (!that[t.type]) {
that[t.type] = {
type: t.type,
value: []
}
result.push(that[t.type]);
}
if (!that[i + '|' + t.type]) {
that[t.type].value = that[t.type].value.concat(o.value1);
that[i + '|' + t.type] = true;
}
})
}, {})
console.log(result)
您可以迭代并查找值。
var data = [{ value1: [1, 2], value2: [{ type: 'A' }, { type: 'B' }] }, { value1: [3, 5], value2: [{ type: 'B' }, { type: 'B' }] }],
grouped = [];
data.forEach(function (a) {
a.value2.forEach(function (b) {
if (!this[b.type]) {
this[b.type] = { type: b.type, value: [] };
grouped.push(this[b.type]);
}
a.value1.forEach(function (c) {
if (this[b.type].value.indexOf(c) < 0) {
this[b.type].value.push(c);
}
}, this);
}, this);
}, Object.create(null));
console.log(grouped);
.as-console-wrapper { max-height: 100% !important; top: 0; }
相关文章:
- 默认情况下折叠和展开嵌套列表
- 在 Joomla (1.7.0) 中单击时显示嵌套列表
- ReactJs - 列表组件中的嵌套列表组件
- Extjs 4-associations hasMany不在loadData上加载嵌套列表
- 在AngularJS 1.5.x中嵌套列表并更正ng模型和ng值
- Javascript-嵌套列表获胜't展开
- 基于类名创建嵌套列表
- AngularJS:具有任意深度的嵌套列表
- 如何在sencha touch中获取嵌套列表
- 限制要在嵌套列表jQuery中添加的列表元素的数量
- 简单的层次结构与jQuery移动嵌套列表+挖空.js
- 隐藏嵌套列表的非活动同级
- 动态嵌套列表:单击时插入行,在当前元素之后
- jQuery将xml解析为嵌套列表
- 煎茶触摸 2:在选项卡面板内创建嵌套列表
- 悬停和嵌套列表 :悬停的元素
- 如何防止嵌套列表的点击事件
- jQuery 移动嵌套列表视图奇怪的行为 + 后退按钮退出
- 使用 jQuery 从 JSON 创建动态嵌套列表
- 在 React js 中打开和关闭递归嵌套列表