Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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 通过jqueryui排序表进行json洗牌_Javascript_Jquery_Json_Jquery Ui - Fatal编程技术网

Javascript 通过jqueryui排序表进行json洗牌

Javascript 通过jqueryui排序表进行json洗牌,javascript,jquery,json,jquery-ui,Javascript,Jquery,Json,Jquery Ui,我有一个json数组 [ { "song_name":"Gerua", "file":"Gerua.mp3", "img_src":"436264562.jpg", }, { "song_name":"Manma Emotion Jaage", "file":"Jaage.mp3", "img_src":"436264562.jpg", }, { "song_name":"Janam Janam", "file

我有一个json数组

[    {  
    "song_name":"Gerua",
    "file":"Gerua.mp3",
    "img_src":"436264562.jpg",
},
{   
    "song_name":"Manma Emotion Jaage",
    "file":"Jaage.mp3",
    "img_src":"436264562.jpg",

},
{  
    "song_name":"Janam Janam",
    "file":"Janam.mp3",
    "img_src":"436264562.jpg",
}]
我使用jqueryui sortable以下面的方式显示这个数组。

用户可以洗牌此列表

当用户单击“更新”按钮时,我想按照用户选择的顺序洗牌json数组


我最喜欢的数组洗牌算法是,下面是的JavaScript实现:

function shuffleArray(array) {
    for (var i = array.length - 1; i > 0; i--) {
        var j = Math.floor(Math.random() * (i + 1));
        var temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    return array;
}
像这样使用它:

shuffleArray(yourArrayOfObject); // Will return shuffled array.

这个算法的运行时间是O(n)

好的,我做到了。为li引入了一个临时数组和一个mediaid属性,单击更新按钮读取dom值,按用户通过mediaid洗牌的顺序将值保存到临时数组,将临时数组复制到主数组

$("#update").click(function(e) {
 temp_json=[];
 $.each($("#sortable>li"), function(key, val) {
  temp_json.push(songs_json[$(val).attr('mediaid')]);
 });
 songs_json=temp_json;
 $("#updatedjson").html(JSON.stringify(songs_json, undefined, 2));
});

用户可以洗牌列表,它不是随机的。因此,如果可能的话,您希望json对象与DOM元素的顺序相对应。