数组排序每次都显示不同的结果

时间:2016-10-13 00:28:19

标签: javascript arrays sorting

我可能在阵列中有近40个元素。偶尔,数组按照我想要的顺序进行排序,但在刷新网页后,即使信息本身保持不变并且排序过程相同,排序顺序也会完全改变。

我注意到我在控制台中收到“2000条消息未被记录”,所以我认为记录器过载了。

因此,我的第一个问题是:执行javascript执行是否有任何'超时',例如在php脚本中?

如果没有,我的代码会出现什么问题?

arr.sort(function (a, b) {

      var a_freq = a["first"],
            b_freq = b["first"],
            a_imp = a["second"],
            b_imp = b["second"],
            a_ldone = a["third"],
            b_ldone = b["third"];

      var imp_diff = (a_imp - b_imp) / 10;

      var relation;

          if (imp_diff == 0){

              if(b_ldone > a_ldone){
                  return 1;
              }else if(b_ldone == a_ldone){
                  if(a_freq >= b_freq){
                      return 1;
                  }else{ 
                      return -1;
                  }
              }else{
                  return -1;
              }

          }else if(imp_diff > 0){

              if(b_ldone > imp_diff && a_ldone - b_ldone > imp_diff){
                  return 1;
              }

              return -1;

          }else{

              imp_diff = imp_diff * (-1);

              if(a_ldone > imp_diff && b_ldone - a_ldone > imp_diff){

                  return -1;

              }

              return 1;

          }

      }

    });

当我返回1 时,我是在推进元素'a'还是'b'?

正如我所说,每次刷新网页时值都保持不变但由于某种原因订单发生变化......但在每次刷新中,最终数组的值保存在缓存中,因此在刷新中排序的新数组是先前已排序的数组,但数组中每个对象的值保持不变...任何原因都可以改变,有时是如此突然? javascript进程是否只是暂停而没有完全整理整个数组?这是什么原因?正如我所写的,我必须在阵列中有大约40/50个元素......这太难处了吗?还有其他可能的主题吗?

0 个答案:

没有答案