如何使用jQuery对动态数组进行排序?

时间:2018-05-21 04:57:32

标签: jquery arrays

我在jquery中创建了两个空数组,并使用ajax我在其中分配值假设ajax分配的每个数组中都有2个值,但它们是随机放置的,但我是'用选择选项填充它们以便显示它我必须以有效的方式显示该数组所以这里是我的代码我使用但不能工作: -

代码: -

  <select id="dropdown">
  </select>

var array1 = Array();
var array2 = Array();
$.ajax({
    url:"/api/v1/workingspots",
    type: "GET",
    dataType: 'json',
    async: false,
    success: function(response){
        for (var i = 0; i < response.response.data.length; i++) {
            array1 = response.response.data[i].start_time;
            array2  = response.response.data[i].end_time;
            var res = array1.sort(function(a, b) {
                  return a > b
                });  
        }
    }
}); 

我遇到的错误: -

 Uncaught TypeError: array1.sort is not a function
at Object.success (booking:58)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at A (jquery.min.js:4)
at XMLHttpRequest.<anonymous> (jquery.min.js:4)
at Object.send (jquery.min.js:4)
at Function.ajax (jquery.min.js:4)
at HTMLDocument.<anonymous> (booking:49)
at j (jquery.min.js:2)
at k (jquery.min.js:2)

我分配给数组的值是: -

 //By console.log(array1)
 28800
 14400

我将如何对两个数组进行排序并在其中分配由两个数组生成的每个值与select选项一起填充。谢谢。

1 个答案:

答案 0 :(得分:2)

start_time是单个值而不是集合,因此您需要将值填充到集合中,然后应用于对其进行排序,

var array1 = [];

for (var i = 0; i < response.response.data.length; i++) {
    array1.push({ 
         start_time : response.response.data[i].start_time, 
         end_time: response.response.data[i].end_time
    });             
}
var res = array1.sort(function(a, b) {
   return a.start_time > b.start_time
});