Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
即使使用javascript函数,AngularJs也无法对数组进行排序_Javascript_Arrays_Angularjs_Angularjs Orderby - Fatal编程技术网

即使使用javascript函数,AngularJs也无法对数组进行排序

即使使用javascript函数,AngularJs也无法对数组进行排序,javascript,arrays,angularjs,angularjs-orderby,Javascript,Arrays,Angularjs,Angularjs Orderby,编辑:我修复了它 我修复了它,我不知道如何和做了什么,但我所做的只是移动了var personTaskMonthly=[]的init;从 $http.get().then(function(data){ var personTaskMonthly=[];}) $http.get().then(function(data){ var personTaskMonthly=[];}) 在$http启动之前 像这样 var personTaskMonthly=[]; $http.get().then

编辑:我修复了它

我修复了它,我不知道如何和做了什么,但我所做的只是移动了var personTaskMonthly=[]的init;从

$http.get().then(function(data){
var personTaskMonthly=[];})
$http.get().then(function(data){
var personTaskMonthly=[];})
在$http启动之前 像这样

var personTaskMonthly=[];
$http.get().then(function(data){})
var personTaskMonthly=[];
$http.get().then(function(data){})
谢谢大家在这个问题上帮助我

编辑: 我发现了问题所在,但我不知道如何解决: 在我执行
$http.get().then(函数(数据))之前,一切似乎都很好{
/******这里我失去了正确的顺序****/})
这是一个复杂的代码,我有3个嵌套的角度foreach函数。
最后,不知何故,我得到了想要的结果。
但结果排序不正确,我不知道为什么

结果是:

{dayId: 1, dayName: "Jeudi", personTaskMonthly: Array(2), $$hashKey: "object:79"}

{dayId: 3, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:82"}

{dayId: 2, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:85"}

{dayId: 5, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:88"}

{dayId: 6, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:91"}

{dayId: 4, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:94"}

{dayId: 10, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:97"}

{dayId: 7, dayName: "Mercredi", personTaskMonthly: Array(0), $$hashKey: "object:100"}

{dayId: 12, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:103"}

{dayId: 8, dayName: "Jeudi", personTaskMonthly: Array(0), $$hashKey: "object:106"}

{dayId: 11, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:109"}

{dayId: 9, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:112"}

{dayId: 18, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:115"}

{dayId: 13, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:118"}

{dayId: 15, dayName: "Jeudi", personTaskMonthly: Array(0), $$hashKey: "object:121"}
我的预期结果是,类似这样:

{dayId: 1, dayName: "Jeudi", personTaskMonthly: Array(2), $$hashKey: "object:79"}


{dayId: 2, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:85"}


{dayId: 3, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:82"}

{dayId: 4, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:94"}

{dayId: 5, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:88"}

{dayId: 6, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:91"}


{dayId: 7, dayName: "Mercredi", personTaskMonthly: Array(0), $$hashKey: "object:100"}



{dayId: 8, dayName: "Jeudi", personTaskMonthly: Array(0), $$hashKey: "object:106"}


{dayId: 9, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:112"}

{dayId: 10, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:97"}

{dayId: 11, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:109"}

{dayId: 12, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:103"}


{dayId: 13, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:118"}

....
您能帮助我如何对json结果进行排序以实现所需的结果吗

这是我的angularjs代码:

function getMonthlyTask(daysInterv){
    /*
  var sDateHour = $scope.dayInterval[0].dsUnix;
    var eDateHour = $scope.dayInterval[$scope.dayInterval.length-1].deUnix;  */
    var taskPerDay=[];
    var i=0;
    var counter = [];


daysInterv.forEach(function(item, ind){

      var sDateHour = item.dsUnix;
        var eDateHour = item.deUnix;

      var dayName = item.dayName;
      var dId = item.id;

$http.get('link')
                .then(function(data){
                    var datas = data.data;
                    var personTaskMonthly=[];

                    datas.forEach(function(it, ind){
                      var idProfile = it.id_profile;
                      var idGroupe = it.id_groupe;

                      if (it.tasks){
                        var countPT = {};
                        var count;
                        it.tasks.forEach(function(k,v){

                            if(k.comptable==1){
                            if(!countPT[k.id_profile]){
                              count=1;
                              countPT[k.id_profile]=count;
                            }else{
                              count+=1;
                              countPT[k.id_profile]=count;
                            }
                           }

                        })
                        personTaskMonthly.push({'id_profile':it.id_profile, 'groupe':it.groupe,countPT});

                      }

                    })


                      taskPerDay.push({'dayId':dId,'dayName':dayName,personTaskMonthly});

                    //$scope.personTaskMonthly=personTaskMonthly;


                });//ending then



    })


        console.log(taskPerDay);
        var sorted = taskPerDay.sort(function(a,b){return a-b});
    $scope.taskPerDay = sorted;

    console.log(sorted);


  }
在sort()中,缺少属性dayId,请尝试以下操作

taskPerDay.sort(function(a,b){ return a.dayId - b.dayId; })
你可以试试这个

var items = [{dayId: 1, dayName: "Jeudi", personTaskMonthly: Array(2), $$hashKey: "object:79"},

    {dayId: 3, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:82"},

    {dayId: 2, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:85"},

    {dayId: 5, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:88"},

    {dayId: 6, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:91"},

    {dayId: 4, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:94"},

    {dayId: 10, dayName: "Samedi", personTaskMonthly: Array(0), $$hashKey: "object:97"},

    {dayId: 7, dayName: "Mercredi", personTaskMonthly: Array(0), $$hashKey: "object:100"},

    {dayId: 12, dayName: "Lundi", personTaskMonthly: Array(0), $$hashKey: "object:103"},

    {dayId: 8, dayName: "Jeudi", personTaskMonthly: Array(0), $$hashKey: "object:106"},

    {dayId: 11, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:109"},

    {dayId: 9, dayName: "Vendredi", personTaskMonthly: Array(0), $$hashKey: "object:112"},

    {dayId: 18, dayName: "Dimanche", personTaskMonthly: Array(0), $$hashKey: "object:115"},

    {dayId: 13, dayName: "Mardi", personTaskMonthly: Array(0), $$hashKey: "object:118"},

    {dayId: 15, dayName: "Jeudi", personTaskMonthly: Array(0), $$hashKey: "object:121"}]
    var sortedArray = items.sort(function(a,b){
     return a.dayId >b.dayId?1:a.dayId <b.dayId?-1:0
    })
    console.log(sortedArray);
var items=[{dayId:1,dayName:“Jeudi”,personTaskMonthly:Array(2),$$hashKey:“object:79”},
{dayId:3,dayName:“Samedi”,personTaskMonthly:Array(0),$$hashKey:“object:82”},
{dayId:2,dayName:“Vendredi”,personTaskMonthly:Array(0),$$hashKey:“object:85”},
{dayId:5,dayName:“Lundi”,personTaskMonthly:Array(0),$$hashKey:“object:88”},
{dayId:6,dayName:“Mardi”,personTaskMonthly:Array(0),$$hashKey:“object:91”},
{dayId:4,dayName:“Dimanche”,personTaskMonthly:Array(0),$$hashKey:“object:94”},
{dayId:10,dayName:“Samedi”,personTaskMonthly:Array(0),$$hashKey:“object:97”},
{dayId:7,dayName:“Mercredi”,personTaskMonthly:Array(0),$$hashKey:“object:100”},
{dayId:12,dayName:“Lundi”,personTaskMonthly:Array(0),$$hashKey:“object:103”},
{dayId:8,dayName:“Jeudi”,personTaskMonthly:Array(0),$$hashKey:“object:106”},
{dayId:11,dayName:“Dimanche”,personTaskMonthly:Array(0),$$hashKey:“object:109”},
{dayId:9,dayName:“Vendredi”,personTaskMonthly:Array(0),$$hashKey:“object:112”},
{dayId:18,dayName:“Dimanche”,personTaskMonthly:Array(0),$$hashKey:“object:115”},
{dayId:13,dayName:“Mardi”,personTaskMonthly:Array(0),$$hashKey:“object:118”},
{dayId:15,dayName:“Jeudi”,personTaskMonthly:Array(0),$$hashKey:“object:121”}]
var SORTEDARAY=项目。排序(函数(a,b){

返回a.dayId>b.dayId?1:a.dayId您的排序函数正在使用整个对象进行比较,您需要像这样使用
taskPerDay.sort(函数(a,b){返回a.dayId-b.dayId;})


但是,如果您不需要javascript中的排序数组,也可以使用angular 2/4/5管道在HTML代码中对它们进行排序,例如,如果您使用angular 1.x,则可以使用默认值为您进行排序编辑:我修复了它

我修复了它,我不知道如何和做了什么,但我所做的只是从

$http.get().then(function(data){
var personTaskMonthly=[];})
$http.get().then(function(data){
var personTaskMonthly=[];})
在$http启动之前 像这样

var personTaskMonthly=[];
$http.get().then(function(data){})
var personTaskMonthly=[];
$http.get().then(function(data){})

谢谢大家在这个问题上的帮助。

好的。但是排序代码在哪里?通常我应该已经对它进行排序,但是发生了一些事情,排序正在改变顺序。看看这个链接……刷新它,你会看到更改,我没有看到你在你发布的链接中描述的症状。我尝试了这个,a这根本不起作用。我甚至不知道为什么它不是数组,而是一个对象?你可以写这个内部排序函数..返回a.dayId>b.dayId?1:-1你好。谢谢你的帮助,我也试过了,但似乎没有解决问题。我总是得到同样的结果。