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

Javascript将2个数组映射为1个对象,javascript,arrays,object,dictionary,Javascript,Arrays,Object,Dictionary,我必须创建数组(名称和状态数组),并将它们映射到一个具有属性名称和状态的对象中 数组名称: ["Time", "Riskchanged", "Scope", "Risk4", "Test", "Test(2)"] 阵列状态: ["In Bearbeitung", "Abgeschlossen", "In Bearbeitung", "Abgeschlossen", "Geplant", "In Bearbeitung"] 功能: this.testArr = this.riskNames

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

数组名称:

 ["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浏览器上不行。。如果我添加了这些行,手机浏览器就不会显示任何内容

那么,还有其他方法可以获得相同的结果吗?

SafariforiOS箭头函数
()=>{}
。改用普通函数
function(){}

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


编辑:更改了无效的
引用。

我认为这是箭头函数的问题-这是ES6样式。尝试使用一个简单的函数:

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

jsIDLE:

在服务器端对POST请求的响应中添加此标头:

Cache-Control: no-cache

我想这是缓存问题,但不完全确定。如果它不起作用。请告诉我,我将尝试找到它不起作用的另一个原因

您是否尝试过使用匿名函数代替箭头函数表达式,iOS Safari是否支持ES6?正如@simplesystems所说,这将是一个好主意。这将导致未捕获的类型错误:无法读取的属性“0”undefined@simplesystems请参阅我的编辑。在正常功能中,
参考不一定指向周围块的
参考。在arrow函数中,确实如此。顺便说一句,不需要绑定,请使用thisArg
testArr=riskNamesArr.map(函数(x,i){return{“name”:x,“state”:riskWorkflowStateArr[i]},this)@NinaScholz非常感谢。这是一个建议,一个可能的答案。我不明白为什么它应该得到
-1
。否决票与答案的质量有关,而不是你是否在寻找答案。