Javascript 将 2 个数组映射到 1 个对象

新手上路,请多包涵

我必须数组(名称和状态数组)并将它们一起映射到一个具有属性名称和状态的对象中。

阵列名称:

  ["Time", "Riskchanged", "Scope", "Risk4", "Test", "Test(2)"]

数组状态:

  ["In Bearbeitung", "Abgeschlossen", "In Bearbeitung", "Abgeschlossen", "Geplant", "In Bearbeitung"]

功能:

 this.testArr = this.riskNamesArr.map( (x, i) => {
    return {"name": x, "state": this.riskWorkflowStateArr[i]}
});

这适用于所有桌面浏览器,但不幸的是不适用于我的 iOS Safari 浏览器。如果我添加这些行,移动浏览器什么也不会显示。

那么有没有另一种方法可以得到相同的结果呢?

原文由 simplesystems 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 385
2 个回答

我认为这是箭头函数的问题——那是 ES6 风格。尝试使用一个简单的函数:

 testArr = riskNamesArr.map( function(x, i){
    return {"name": x, "state": riskWorkflowStateArr[i]}
}.bind(this));

JSFiddle: https ://jsfiddle.net/urbr49d3/

原文由 Michael 发布,翻译遵循 CC BY-SA 3.0 许可协议

适用于 iOS 的 Safari 尚不支持 箭头功能 () => {} 。使用普通函数 function() {} 代替:

 var riskWorkflowStateArr = this.riskWorkflowStateArr;
this.testArr = this.riskNamesArr.map(function(x, i) {
    return {"name": x, "state": riskWorkflowStateArr[i]}
});

有关箭头功能的更多信息。

编辑: 更改无效 this 参考。

原文由 TimoStaudinger 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题