我正在尝试循环json并创建新的数组。它适用于除ie
浏览器以外的其他浏览器。如何解决ie
她是我的代码:
var json = [{
"name": "techM",
"age": 12,
"station": "chennai"
},
{
"name": "CTS",
"age": 10,
"station": "Pondy"
}
];
var columns = [];
json.forEach(function(object) {
var that = this;
Object.keys(object).forEach(function(key) {
//[key] is not understand by ie browsers.
if (!that[key]) that[key] = {
[key]: []
}, columns.push(that[key]);
that[key][key].push(object[key])
})
console.log(that);
}, {})
答案 0 :(得分:0)
您的代码在IE中不起作用的原因是计算对象属性:
that[key] = {[key]: []}
在this page底部描述的IE中不支持此功能。
您可以将其更改为
var obj = {};
obj[key] = [];
if(!that[key]) that[key] = obj, columns.push(that[key]);
that[key][key].push(object[key])
答案 1 :(得分:-1)
你可以使用这样的东西。
if (!Object.keys) {
Object.keys = function(obj) {
var keys = [];
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
keys.push(i);
}
}
return keys;
};
}