【发布时间】:2017-05-24 14:13:52
【问题描述】:
在 AngularJS 中,我在 service 中向 JSON 文件发出了 $http 请求,我需要编写 if 语句来检查最后一个值是大于还是小于之前的值。仅当我将变量放在 for 循环下方时它才会起作用,这不应该是这种情况。
当我console.log 时,它返回0 的长度或数组。我不确定我的array、for loop 或if 声明是否存在问题。如何遍历 JSON 文件中的对象并将这些项目推送到数组中?
app.factory('fxRate', ['$http', '$q', function($http, $q){
var factory = {};
factory.getFx = function() {
return $http.get('../json/mcfx.json');
}
return factory;
}]);
app.controller('dashboard', ['$scope', 'fxRate', function($scope, fxRate){
$scope.dailyFx = function() {
fxRate.getFx().then(function(response) {
//handle response or data
var rates = [];
var rateData = response.data.fxrate;
var last_el = rates[rates.length - 1];
var prev_el = rates[rates.length - 2];
console.log(rates)
for (var i in rateData) {
rates.push(rateData[i].usdToEur)
}
if(last_el > prev_el) {
console.log('greater'); //0.9786
} else {
console.log('lesser'); //0.9232
}
});
}
$scope.dailyFx();
}])
{
"fxrate": [
{
"usdToEur": "0.94",
"date": "23/05/2017"
},
{
"usdToEur": "0.9232",
"date": "24/05/2017"
},
{
"usdToEur": "0.9786",
"date": "25/05/2017"
}
]
}
【问题讨论】:
-
当您说:“只有将变量放在 for 循环下方时它才会起作用”时,您在谈论哪些变量?
-
var last_el和var prev_el
标签: javascript angularjs arrays json