如何将json转换为没有键的angularjs中的数组?
在这样如何将json转换为没有键的angularjs中的数组?
var data = [
{"field1":"918666400041","field2":"2016-05-19 11:52:52"},
{"field1":"918666400035","field2":"2016-05-19 11:52:52"},
{"field1":"918666400060","field2":"2016-05-19 11:52:52"}
];
但我需要转换成阵列格式了键,如我的代码返回JSON格式:
var Data = [
['918666400041', '2016-05-19 11:52:52'],
['918666400035', '2016-05-19 11:52:52'],
['918666400035', '2016-05-19 11:52:52']
];
任何一个可以将给予这个问题的解决方案?
我已经尝试过angular.forEach
函数和map
函数,但我没有得到这种格式。
你可以尝试reduce功能:
var Data = data.reduce(function(previousValue, currentValue) {
previousValue.push([currentValue.field1, currentValue.field2])
return previousValue;
}, []);
var obj = [ {"field1":"918666400041","field2":"2016-05-19 11:52:52"}, {"field1":"918666400035","field2":"2016-05-19 11:52:52"}, {"field1":"918666400060","field2":"2016-05-19 11:52:52"} ];
var res = obj.map(function(val) {
return [val.field1, val.field2]
})
console.log(res)
感谢asdf_enel_hak现在工作正常 – Ram
根据您打算support浏览器,你可以只使用ES5 map功能:
var mappedData = data.map(function(obj) {
return [obj.field1, obj.field2];
});
如果您没有访问ES5阵列的方法,你可以使用角度的的forEach如下:
var mappedData = [];
angular.forEach(data, function(obj) {
mappedData.push([obj.field1, obj.field2]);
});
感谢net.uk.sweet工作正常 – Ram
没有probs @Ram。你能将答案标记为正确吗? –
可以使这样的:
var l_IN = <your starting JSON> ;
var I_OUT = [] ;
for (x = 0 ; x < l_IN.length ; x++) {
dummy = {l_IN.field1,l_IN.field2} ;
l_OUT.push(dummy) ;
// or l_OUT.push(l_IN.field1,l_IN.field2) ;
}
....
试试这个
var data = [
{"field1":"918666400041","field2":"2016-05-19 11:52:52"},
{"field1":"918666400035","field2":"2016-05-19 11:52:52"},
{"field1":"918666400060","field2":"2016-05-19 11:52:52"}
];
var x =[];
angular.forEach(data,function(val,index){
x.push(val.field1)
x.push(val.field2)
})
现在x你会得到所需的阵列
你可以使用这样的事情:
var data = [ {"field1":"918666400041","field2":"2016-05-19 11:52:52"},{"field1":"918666400035","field2":"2016-05-19 11:52:52"}, {"field1":"918666400060","field2":"2016-05-19 11:52:52"} ],
newData = [];
// Iterating through the data array, to process object by object
for (var i = data.length - 1, tempArray; i >= 0; i--) {
// returning a new object with only the current object value for each key
tempArray = Object.keys(data[i]).map(function(k) { return data[i][k] });
newData.push(tempArray);
}
console.log(newData);
这是非常类似(但稍微复杂一点这里)比Converting JSON Object into Javascript array
背后是什么忽略对象的字段名的想法?如果你想让JSON像这样,那么你不应该为了对象本身。你期望的是数组的简单数组。 – NightsWatch