我假装将假期变量的 console.log 出现在列表中而不是作为数组。如何以简单对象的形式获取此信息?
我的 json:
[{
"2016-10-10":[{"name":"Columbus Day","country":"US","date":"2016-10-10"}],
"2016-10-31":[{"name":"Halloween","country":"US","date":"2016-10-31"}]
}]
我的应用程序:
app.factory('calendario', function($http) {
return{
getJobs : function() {
return $http({
url: '/app/components/home/controller/test_calendar.json',
method: 'GET'
})
}
}
});
Controller :
var holidays = [];
calendario.getJobs().success(function(data){
holidays.push(data[0]);
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
示例:
我想要这个
我不想要这个
最佳答案
你想压平它,所以,Nick是对的,不要使用数组,而是使用dict/hash。如果您的功能受到影响,您可以使用一些解决方法:
var holidays = [{
"2016-10-10":[{"name":"Columbus Day","country":"US","date":"2016-10-10"}],
"2016-10-31":[{"name":"Halloween","country":"US","date":"2016-10-31"}]
}];
var flatten_holidays = holidays.reduce(function(elem){return elem});
我不觉得这是专门的 AngularJS 问题,更像是常见的 JavaScript 问题。 对于您的示例,它将是:
var holidays = [];
calendario.getJobs().success(function(data){
holidays.push(data[0]);
});
$scope.setDayContent = function(date) {
console.log(holidays.reduce(function(elem){return elem}));
};
或者,如果首选使用 dict/hash:
var holidays = {};
calendario.getJobs().success(function(data){
//if data is: {"2016-10-10":[{"name":"Columbus day","country":"US","date":"2016-10-10"}]}
var key = Object.keys(data)[0];
var value = data[key];
holidays[key] = value;
});
$scope.setDayContent = function(date) {
console.log(holidays);
};
关于javascript - 如何使用 javascript 访问 json 对象 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40638733/