javascript Safari 浏览器中的数组推送错误

javascript array push error in Safari Browser

我遇到了这个错误

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 出现错误。谁能赐教一下,哪里不对?

Question Update

在我这样做之后

datas1.push({value:value})

现在 运行 在 Safari 浏览器中没问题。但是现在当我尝试 ios 设备(这是离子应用程序)时,代码无法运行。 datas1

内没有推送数据

我想当一切都在 Safari 上运行时,在 ios 设备上也能运行?

Safari 可能不支持短对象表示法 ({ value })。您必须指定键和值:

datas1.push({ value: value });

我也有这个问题。这是因为,我正在使用

var newObj = [];
for (var k in dataArray) {
    newObj.push(datArr[k]);
}

此 'for-loop' 仅在 Safari 中产生问题,并且它向数组添加了一个函数对象,并且数组长度始终为实际长度 + 1。

我通过用下面的格式替换这个 for 循环来修复,

var newObj = [];
for (var k = 0 ; k < dataArray.length; k++) {
    newObj.push(datArr[k]);
}