在JavaScript(Ng2)中导入两个相同的名称数组

时间:2017-11-23 09:26:27

标签: javascript html angular

我有两个Javascript数组,名称相同,但可以找到不同的文件。 在HTML中我使用脚本src标签从js文件加载数组。 我在NG2中使用了loadsh模块(或者可能并不重要,因为它可以在window对象中找到),不幸的是,它无法加载它们。

例如:

first.js含有: var obj = [{"ads":"1"}]

second.js含有: var obj = [{"ads":"2"}]

因为loadsh只使用对象名而不是文件名:

(<any>window).obj

预期的结果是,我必须在NG2中获得两个对象。

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子:

var array = [{
  name: "fo1",
  value: "val_1"
}, {
  name: "fo1",
  value: ["val_1", "val_2"]
}, {
  name: "fo2",
  value: "val4"
}];

var output = [];

array.forEach(function(value) {
  var existing = output.filter(function(v, i) {
    return v.name == value.name;
  });
  if (existing.length) {
    var existingIndex = output.indexOf(existing[0]);
    output[existingIndex].value = output[existingIndex].value.concat(value.value);
  } else {
    if (typeof value.value == 'string')
      value.value = [value.value];
    output.push(value);
  }
});

console.dir(output);