Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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 合并以多种方式返回的多个数组/对象_Javascript_Jquery_For Loop - Fatal编程技术网

Javascript 合并以多种方式返回的多个数组/对象

Javascript 合并以多种方式返回的多个数组/对象,javascript,jquery,for-loop,Javascript,Jquery,For Loop,我已经创建了一个选择,在更改时从对象中提取“节点”和“链接”。更改值后,我必须使用与jsonservice相同的结构重新创建对象,但会产生新内容 在下面的代码中,我有3个console.log。我必须将这3个返回值混合到一个对象中。如果选择“选择”的第一个值,则会得到: 第一个控制台日志(SelectedNodeArray): 第二个控制台日志(LinksArray): for循环内的第三个控制台日志(LinkedNodeArray): 如何将所有3个返回组合成这样的对象 {"nod

我已经创建了一个选择,在更改时从对象中提取“节点”和“链接”。更改值后,我必须使用与
jsonservice
相同的结构重新创建对象,但会产生新内容

在下面的代码中,我有3个console.log。我必须将这3个返回值混合到一个对象中。如果选择“选择”的第一个值,则会得到:

  • 第一个控制台日志(SelectedNodeArray):
  • 第二个控制台日志(LinksArray):
  • for循环内的第三个控制台日志(LinkedNodeArray):
如何将所有3个返回组合成这样的对象

{"nodes":[
    {id: "Anzelma", group: 4},
    {id: "Eponine", group: 4},
    {id: "Thenardier", group: 4},
    {id: "Mme.Thenardier", group: 4}
],
"links":[
    {source: "Anzelma", target: "Eponine", value: 2},
    {source: "Anzelma", target: "Thenardier", value: 2},
    {source: "Anzelma", target: "Mme.Thenardier", value: 1}
]}
多谢各位

let jsonservice={“nodes”:[{“id”:“Myriel”,“group”:1},{“id”:“poleon”,“group”:1,“type”:“person”},{“id”:“Mlle.Baptistine”,“group”:1},{“id”:“Mme.Magloire”,“group”:1},{“CountessdeLo”,“group”:1},{“id”:“Geborand”,“group”:1},{“id”:“Champtercier”,“group”:1},{“id”:“crav“拉巴尔”、“群”:2},{“id”:“阿让”、“群”:2},{“id”:“玛格丽特”、“群”:3},{“id”:“德尔夫人”、“群”:2},{“id”:“伊莎博”、“群”:2},{“id”:“热尔韦”、“群”:2},{“id”:“多罗米埃”、“群”:3},{“id”:“利斯托利埃”、“群”:3},{“id”:“法梅尔”、“群”:3},{“id”:“布拉切维尔”、“群”:3},{“id”:“最爱的群”:3},{“id”:“扎菲群”:小组:3},{“id”:“芳汀”,“小组”:3},{“id”:“德纳第夫人”,“小组”:4},{“id”:“德纳第”,“小组”:4},{“id”:“珂赛特”,“小组”:5},{“id”:“沙威”,“小组”:4},{“id”:“割风”,“小组”:0},{“id”:“巴马塔博伊斯”,“小组”:2},{“id”:“永久”,“小组”:3},{“id”:“Simplice”,“小组”:2},{“id”:“斯考菲尔”,“小组”:2},{“斯考菲尔”,“法官”:1},{“小组”:“:2},{”id“:“尚普马修”,“集团”:2},{”id“:“布雷维特”,“集团”:2},{”id“:“切尼尔迪厄”,“集团”:2},{”id“:“科切派勒”,“集团”:2},{”id“:“彭眉胥”,“集团”:4},{”id“:“博拉图列”,“集团”:6},{”id“:“埃潘妮”,“集团”:4},{”格里id“:“安泽尔玛”,“集团”:4},{”id“:“妇女2”,“集团”:5},{”id“:“无辜的“:“母亲”,“无辜的集团”:0},{,“安灼拉”,“群”:8},{“id”:“公白飞”,“群”:8},{“id”:“普劳维尔”,“群”:8},{“id”:“费伊”,“群”:8},{“id”:“古费拉克”,“群”:8},{“id”:“巴约雷”,“群”:8},{“id”:“博须埃”,“群”:8},{“id”:“朱莉“Claquesous”,“group”:4},{“id”:“Montparnasse”,“group”:4},{“id”:“Toussant”,“group”:5},{“id”:“Child1”,“group”:10},{“id”:“Child2”,“group”:10},{“id”:“Brujon”,“group”:4},{“id”:“Huchelup夫人”,“group”:8},
“链接:“{”来源“:”拿破仑“,”目标“:”米里哀“,”价值“:”1},{”来源“:”米里哀“,”价值“,”目标“:”米里哀“,”价值“:”10},{”来源“:”米里哀“,”目标“:”米里哀“,”价值“:”6},{”来源“,”伯爵“,”目标“,”米里哀尚普特西耶,目标:米里哀,价值:1},{来源:克拉瓦特,目标:米里哀,价值:1},{来源:伯爵,目标:米里哀,价值:2},{来源:奥德曼,目标:米里哀,价值:1},{来源:冉阿让,目标:1},{来源:冉阿让,目标:马格洛伊尔夫人,价值:3},{来源:阿让,目标:姆勒·巴普蒂斯丁,价值:3},{“来源”:“阿让”,“目标”:“米里哀”,“价值”:5},{“来源”:“玛格丽特”,“目标”:“阿让”,“价值”:1},{“来源”:“德夫人”,“目标”:“阿让”,“价值”:1},{“来源”:“伊萨博”,“目标”:“阿让”,“价值”:1},{“来源”:“热尔韦”,“目标”:“阿让”,“价值”:1},{“来源”:“利斯托利埃”,“目标”:“多罗米埃”,“价值”:4},{“来源”:“法梅埃”,“目标”:“多罗米埃”,“多罗米埃”,“目标”:“多罗米埃”值:4},{“源”:“法梅尔”,“目标”:“利斯特利尔”,“值”:4},{“源”:“布拉切维尔”,“目标”:“多罗米耶”,“值”:4},{“源”:“布拉切维尔”,“目标”:“利斯特利尔”,“值”:4},{“源”:“布拉切维尔”,“目标”:“法梅尔”,“值”:4},{“源”:“最爱”,“目标”:“多罗米耶”,“值”:3},{“源”:“最爱”,“目标”:“利斯特利斯特利尔”,“值”:3},{“源”:最喜欢的,目标:“‘法梅耶’,‘价值’:“3},{”来源:“‘法梅耶’,‘价值’:“3},{”来源:“‘多罗米耶’,‘价值’:“3},{”来源:“,‘价值’:“3},{”来源:“,‘法梅耶’,‘价值’:“3},{”来源:“‘法梅耶’,‘价值’:“3},{“:5},{”来源“:”泽芬“,”目标“:”多罗米埃“,”价值“:3},{”来源“,”泽芬“,”目标“,”利索利埃“,”价值“,”目标“,”法梅伊“,”价值“:”3},{”来源“,”泽芬“,”目标“,”宠儿“,”价值“,”4},{”来源“,”泽芬“,”目标“,”价值“,”4},{”来源“,”芳汀“,”目标“:”“多罗米埃”,“价值”:3},{“来源”:“芳汀”,“目标”:“利斯托利埃”,“价值”:3},{“来源”:“芳汀”,“目标”:“法梅埃尔”,“价值”:3},{“来源”:“芳汀”,“目标”:“布拉切维尔”,“价值”:3},{“来源”:“芳汀”,“目标”:“宠儿”,“价值”:4},{“来源”:“芳汀”,“目标”:“大丽花”,“价值”:4},{“来源”:“芳汀”,“目标”:“泽芬”,“价值”:4},{“来源”:“芳汀”,“目标”:“来源”:“泽芬”,“价值”:4},{“来源”:“芳汀”“,”目标“,”玛格丽特“,”价值“,”目标“,”芳汀“,”目标“,”阿让“,”价值“,”目标“,”德纳第夫人“,”目标“,”芳汀“,”价值“,”目标“,”德纳第夫人“,”目标“,”阿让“,”价值“,”7},,”来源“,”德纳第“,”目标“,”德纳第“,”价值“,”13},“,”来源“,”德纳第“,”目标“,”德纳第“,”目标“,”芳汀“,”价值“,”目标“,”1},,”来源“,”德纳第“,”目标“,”“阿让”,“价值”:12},{“来源”:“珂赛特”,“目标”:“德纳第夫人”,“价值”:4},{“来源”:“珂赛特”,“目标”:“阿让”,“价值”:31},{“来源”:“珂赛特”,“目标”:“多罗米埃”,“价值”:1},{“来源”:“珂赛特”,“目标”:“德纳”
//should be grouped with "links"
0: {source: "Anzelma", target: "Eponine", value: 2}
1: {source: "Anzelma", target: "Thenardier", value: 2}
2: {source: "Anzelma", target: "Mme.Thenardier", value: 1}
//should be grouped with "nodes"
0: {id: "Eponine", group: 4}
0: {id: "Thenardier", group: 4}
0: {id: "Mme.Thenardier", group: 4}
{"nodes":[
    {id: "Anzelma", group: 4},
    {id: "Eponine", group: 4},
    {id: "Thenardier", group: 4},
    {id: "Mme.Thenardier", group: 4}
],
"links":[
    {source: "Anzelma", target: "Eponine", value: 2},
    {source: "Anzelma", target: "Thenardier", value: 2},
    {source: "Anzelma", target: "Mme.Thenardier", value: 1}
]}
var namesArray = [];

$.each(jsonServit.nodes, function(index) {
  var name = jsonServit.nodes[index].id;
  if ($.inArray(name, namesArray) == -1) {
    namesArray.push(name);
  }
});

namesArray.sort();

$.each(namesArray, function(index) {
  $("#SelectName").append('<option value="' + namesArray[index] + '">' + namesArray[index] + '</option>');
});

// result variable
var result = {};

$("#SelectName").change(function() {
  // Move the var declaration inside the each as they are temp variables
  var LinksArray = [];

  var selectedName = this.value;

  SelectedNodeArray = $.grep(jsonServit.nodes, function(node, index) {
    return node.id == selectedName;
  });
  LinksArray = $.grep(jsonServit.links, function(link, index) {
    return link.source == selectedName;
  });

  console.log(SelectedNodeArray);
  console.log(LinksArray);

  var linkedNodesArray = [].concat(SelectedNodeArray);

  for (var i = 0; i < LinksArray.length; i++) {
    linkedNodesArray = linkedNodesArray.concat($.grep(jsonServit.nodes, function(link, index) {
      return link.id == LinksArray[i].target;
    }));
  }
  console.log(linkedNodesArray);
  result.nodes = linkedNodesArray;
  result.links = LinksArray;

  console.log(result);
});