Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JS配置对象提取数据以创建新对象_Javascript_Foreach_Configuration_Lodash - Fatal编程技术网

Javascript 从JS配置对象提取数据以创建新对象

Javascript 从JS配置对象提取数据以创建新对象,javascript,foreach,configuration,lodash,Javascript,Foreach,Configuration,Lodash,指定此配置对象成员(较大对象的一部分): 我需要迭代它并为stations数组中的每个对象生成此对象: var myObj = { "station": 1, "slots": [ { "position": "AO" "name": [name] }, { "position": "FF" "name": [name] }, { "position": "PFF" "n

指定此配置对象成员(较大对象的一部分):

我需要迭代它并为stations数组中的每个对象生成此对象:

var myObj = {
  "station": 1,
  "slots": [
    {
      "position": "AO" 
      "name": [name]
    },
    {
      "position": "FF" 
      "name": [name]
    },
    {
      "position": "PFF" 
      "name": [name]
    },
  ]  
}
我将分别填写名称,因此我现在不担心该值

我一直在尝试使用lodash u.forEach()实现这一点,但我感觉我没有尽可能有效地使用它。我试图做的(但失败的是)是在另一个循环中使用u.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);
  });
(这只是为了说明我正在尝试做什么-不工作的代码)

那么我怎样才能完成我想做的事情呢


谢谢。

这是一个简单的javascript解决方案,包含两个
forEach()
循环

var数据={“站”:[{“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”],“PFF”},{“id”:3,“positions”:“AO”,“AO”,“FF”,“PFF”;“PFF”},{“id”:4,“positions”,“AO”,“FF”,“PFF”;“PFF”}
var结果=[];
数据。站。forEach(功能(o){
var obj={station:o.id,slots:[]}
o、 职位。forEach(功能(e){
推({
职位:e,
姓名:“姓名”
})
})
结果:推送(obj);
});

document.body.innerHTML+=''+JSON.stringify(结果0,4)+''这里是带有两个
forEach()
循环的纯javascript解决方案

var数据={“站”:[{“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”],“PFF”},{“id”:3,“positions”:“AO”,“AO”,“FF”,“PFF”;“PFF”},{“id”:4,“positions”,“AO”,“FF”,“PFF”;“PFF”}
var结果=[];
数据。站。forEach(功能(o){
var obj={station:o.id,slots:[]}
o、 职位。forEach(功能(e){
推({
职位:e,
姓名:“姓名”
})
})
结果:推送(obj);
});
document.body.innerHTML+=''+JSON.stringify(结果0,4)+''
  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);
  });