Safari浏览器中的javascript数组推送错误
我犯了这个错误Safari浏览器中的javascript数组推送错误,javascript,safari,Javascript,Safari,我犯了这个错误 SyntaxError: Unexpected token '}'. Expected a ':' following the property name 'value'. (anonymous function) 执行此操作时: var datas1 = []; angular.forEach(data.data, function(value, key) { if(value.comfi_type_id == "1" || value.comfi_t
SyntaxError: Unexpected token '}'. Expected a ':' following the property name 'value'.
(anonymous function)
执行此操作时:
var datas1 = [];
angular.forEach(data.data, function(value, key) {
if(value.comfi_type_id == "1" || value.comfi_type_id == "3" || value.comfi_type_id == "4")
datas1.push({value})
})
$timeout(function() {
$scope.items = {'data':{'data1':datas1}};
}, 1000);
该代码在Chrome上运行良好,但只有Safari出现错误。谁能告诉我,怎么了
问题更新
在我这么做之后
datas1.push({value:value})
它现在可以在Safari浏览器中正常运行。但现在,当我在ios设备(这是爱奥尼亚应用程序)上尝试时,代码无法运行。没有数据被推送到内部datas1
我想当一切都在Safari上运行时,也可以在ios设备上运行?Safari可能不支持短对象表示法({value})。必须指定键和值:
datas1.push({ value: value });
Safari可能不支持短对象表示法({value})。必须指定键和值:
datas1.push({ value: value });
我也有这个问题。那是因为,我用了
var newObj = [];
for (var k in dataArray) {
newObj.push(datArr[k]);
}
此“for循环”仅在Safari中创建问题,它还向数组添加了一个函数对象,数组长度始终为实际长度+1
我用下面的格式替换了for循环
var newObj = [];
for (var k = 0 ; k < dataArray.length; k++) {
newObj.push(datArr[k]);
}
var newObj=[];
for(var k=0;k
我也有这个问题。那是因为,我用了
var newObj = [];
for (var k in dataArray) {
newObj.push(datArr[k]);
}
此“for循环”仅在Safari中创建问题,它还向数组添加了一个函数对象,数组长度始终为实际长度+1
我用下面的格式替换了for循环
var newObj = [];
for (var k = 0 ; k < dataArray.length; k++) {
newObj.push(datArr[k]);
}
var newObj=[];
for(var k=0;k
太好了,它现在正在工作。稍后将标记为答案:)@MiG我想补充一点,短对象表示法是ES6的一项功能,因此如果您计划支持多个浏览器,最好避免直接使用它。您好,我已经更新了我的问题。上一个修复程序在Safari上运行良好,但在ios设备上尚未运行。为什么?它应该会起作用。条件满足了吗?可能有一些不同的数据。啊,是的……我确实删除了ios平台,然后在xcode上重新添加、清理和重建。现在一切正常。也许我太惊慌了:P..非常感谢这太好了,它正在工作。稍后将标记为答案:)@MiG我想补充一点,短对象表示法是ES6的一项功能,因此如果您计划支持多个浏览器,最好避免直接使用它。您好,我已经更新了我的问题。上一个修复程序在Safari上运行良好,但在ios设备上尚未运行。为什么?它应该会起作用。条件满足了吗?可能有一些不同的数据。啊,是的……我确实删除了ios平台,然后在xcode上重新添加、清理和重建。现在一切正常。也许我太惊慌了:P.非常感谢