从JS配置对象中提取数据以创建新对象
Extract data from JS config object to create new object
给这个配置对象成员(一个较大对象的一部分):
stations: [
{
id: "RH",
positions: ['RH2,', 'RH16', 'RH14']
},
{
id: "WT",
positions: ['WT10,', 'WT11', 'WT12', 'WT13', 'WT14', 'WT18']
},
{
id: 1,
positions: ['AO,', 'FF', 'PFF']
},
{
id: 2,
positions: ['AO,', 'FF', 'PFF']
},
{
id: 3,
positions: ['AO,', 'FF', 'PFF']
},
{
id: 4,
positions: ['AO,', 'FF', 'PFF']
}
],
我需要迭代它并为工作站数组中的每个对象生成此对象:
var myObj = {
"station": 1,
"slots": [
{
"position": "AO"
"name": [name]
},
{
"position": "FF"
"name": [name]
},
{
"position": "PFF"
"name": [name]
},
]
}
我将单独填写名称,因此此时我不担心该值。
我一直在尝试使用 lodash _.forEach() 来做到这一点,但我有一种感觉,我没有尽可能有效地使用它。我正在尝试做的(并且失败了)是在另一个内部使用 _.forEach(),并且我无法从内部循环访问外部循环中的变量:
this.shiftTables = [];
_.forEach(stations, function(station) {
var table = {
"station": station.id,
"slots": []
};
//Iterate over station.positions
_.forEach(station.positions, function(position) {
var slot = {
"position": position,
"name": "Name"
};
});
vm.shiftTables.push(table);
});
(这只是为了显示我正在尝试做什么 - 不是工作代码)。
那么我怎样才能完成我想做的事情呢?
谢谢。
这是带有两个forEach()
循环的普通JavaScript解决方案。
var data ={"stations":[{"id":"RH","positions":["RH2,","RH16","RH14"]},{"id":"WT","positions":["WT10,","WT11","WT12","WT13","WT14","WT18"]},{"id":1,"positions":["AO,","FF","PFF"]},{"id":2,"positions":["AO,","FF","PFF"]},{"id":3,"positions":["AO,","FF","PFF"]},{"id":4,"positions":["AO,","FF","PFF"]}]}
var result = [];
data.stations.forEach(function(o) {
var obj = {station: o.id, slots: []}
o.positions.forEach(function(e) {
obj.slots.push({
position: e,
name: "Name"
})
})
result.push(obj);
});
document.body.innerHTML += '<pre>' + JSON.stringify(result, 0, 4) + '</pre>';
相关文章:
- 查找关键字并创建新对象
- 创建新对象时,为什么要更新旧对象
- 为什么要使用立即调用的函数来创建新对象
- 剑道网格-插入具有外部列的新对象失败
- 将原型调用为新对象中的另一个原型
- 将新对象添加到本地存储
- $$hashKey在Angular中push()新对象时未生成新值
- 从分析类传递现有对象,否则创建一个新对象
- 为什么这个功能打印“;未定义的未定义的“;作为联系人名称,添加“新对象”
- Will my'新对象'在套接字断开连接时被垃圾收集
- 从数组javascript创建新对象
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- 在for循环-Javascript中创建新对象
- Javascript:使用一个预先存在的对象值作为一个新对象的键
- 确定是创建新对象还是更新现有对象
- 返回它在Javascript中构建的新对象
- 如何使用Typescript创建一个包含对象的字段的新对象
- Sinon:存根和整个对象,并将其替换为新对象
- JavaScript:创建新对象类型的方法
- 将新对象“附加”到 ng 重复项