如何在for循环中进行反转?

时间:2015-07-20 21:07:58

标签: javascript angularjs

我有这个Js方法,但我不能实现一个启示循环

$scope.organizeByMonth = function () {

    for (var i in $scope.incidents) {

        var month = new Date($scope.incidents[i].upload_date).getMonth();

        if (!monthIncidents[month]) {

            monthIncidents[month] = {

                name: $scope.months[month],
                incidents: []
            };
        }
        var incident = $scope.incidents[i];

        incident.index = i;

        monthIncidents[month].incidents.push(incident);
    }
};

如何反向显示相同的对象:/

3 个答案:

答案 0 :(得分:3)

您无法使用for in语法执行反向循环 - 它也无关紧要。 JavaScript中的对象是无序的。

答案 1 :(得分:1)

最接近反向for..in ..循环的方法是获取对象键并向后迭代它们:

var object = { a: 1, b: 2, c: 3 };
var keys = Object.keys(object);
for(var i = keys.length - 1; i >= 0; i--) {
    console.log(keys[i], object[keys[i]]);
}

http://jsfiddle.net/1oztmp2e/

答案 2 :(得分:0)

为什么要反转for循环?它仅用于显示目的吗?

如果是这样,我假设您正在使用ng-repeat来显示记录。如果是这种情况,您可以使用a custom reverse filter

或者如果由于其他原因需要反转数组,只需在填充数组后使用Array.reverse