将数组对象组合成单个对象
combining array objects into single object
使用Rxjs 5.0,我有一个像这样的对象
var data = [
{name: 'abc', title: 'zzz', data: '', id: ''},
{name: 'abc1', title: 'zzz1', data: '', id: ''},
{name: 'abc2', title: 'zzz2', data: '', id: ''},
{name: 'abc3', title: 'zzz3', data: '', id: ''}
]
我想简单地映射它,只保留名称和平铺。所以像这样
Rx.Observable.from(data)
.map(item => return {name: item.name, title: item.title};)
.subscribe(items => console.log('Final OBJ:' + JSON.stringify(items)));
在控制台上,我在多行上获得项目,即订阅运行4次。我想运行订阅只一次与一个完整的对象包含只有名称和标题字段的数据。
控制台的预期输出是:
Final OBJ: [{name: 'abc', title: zzz},{name: 'abc1', title: zzz1},{name: 'abc2', title: zzz2},{name: 'abc3', title: zzz3}]
您可以简单地使用:
Rx.Observable.from(data)
.reduce((arr, item, idx, source) => {
arr.push({
name: item.name,
title: item.title
});
return arr;
}, [])
.subscribe(items => console.log(JSON.stringify(items)));
JS Bin示例
Edit:似乎combineAll应该能做到这一点。
Rx.Observable.from(data)
.map(item => {
return Rx.Observable.of({
name: item.name,
title: item.title
});
})
.combineAll()
.subscribe(items => console.log(JSON.stringify(items)));
JS Bin示例
创建一个新的数组。使用forEach
数组方法从旧数组
var newArray = [];
data.forEach(function(item){
newArray.push({
name:item.name,
title:item.title
})
})
console.log(newArray)
JSFIDDLE
相关文章:
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- 仅使用文件对象选择单个文件
- 如何使用javascript从JSON访问单个对象
- 将一个对象集合映射到汇总集合的单个对象
- 高级布线和单个对象定义
- 嵌套描述函数中对象的单个mock(jasmine
- 如何在返回单个对象时递归使用 Array.prototype.find()
- 使用Handlebars获取同级JSON数据,其中单个对象没有父索引键,但多个项有一个索引键
- 基于单个属性从数组中获取唯一对象
- 从mongo返回的对象(findOne)中筛选/返回单个嵌套对象
- 如何在javascript中的单个对象中推送类似的索引类型键
- Knockout.js用单个json对象绑定一个可观察对象
- 访问单个 Json 对象中的元素
- 下划线分组依据单个方面与嵌套对象属性的比较
- NodeJS + mysql:选择返回单个对象的查询
- 单个页面中的多个会话对象
- 在javascript(Angularjs)中将对象数组转换为单个对象
- 在单个 Javascript 函数中处理多个 websocket 订阅,但只有一个连接对象
- 更改 JS 数组中的单个对象会更改所有元素
- 从 Web 服务返回单个 json 对象的数组