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

sim*_*ems 6 javascript arrays dictionary object

我必须使用数组(名称和状态数组)并将它们映射到具有attrbiutes名称和状态的一个对象.

数组名称:

 ["Time", "Riskchanged", "Scope", "Risk4", "Test", "Test(2)"]
Run Code Online (Sandbox Code Playgroud)

数组状态:

 ["In Bearbeitung", "Abgeschlossen", "In Bearbeitung", "Abgeschlossen", "Geplant", "In Bearbeitung"]
Run Code Online (Sandbox Code Playgroud)

功能:

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

这适用于所有桌面浏览器,但遗憾的是不在我的iOS Safari浏览器上.如果我添加这些行,移动浏览器只显示任何内容.

那么有另一种方法可以获得相同的结果吗?

小智 11

我认为这是箭头功能的问题 - 那就是ES6风格.尝试使用一个简单的功能:

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

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


Tim*_*imo 7

Safari for iOS 尚不支持箭头功能() => {}.使用普通功能function() {}代替:

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

更多关于箭头功能.

编辑:更改了无效this引用.