在jquery中,json对象How中的每个循环(使循环从对象中找到一个值,并与另一个对象值进行比较,以避免重复打印)

In jquery each Loop from json object How (make loop find a value from object and compare to another object value to not repeat a print)?

本文关键字:循环 对象 一个对象 打印 比较 How json jquery 一个      更新时间:2023-09-26

大家好,我正在开发一个音乐播放器,我正在使用Json来存储我的ID3或AKA"MP3元数据"。我面临的问题是,我正在提取一个对象并训练gf,看看我是否可以比较值,如果两个对象都有相同的值,不要重复打印。如果我只想让艺术家在

  • 中重复一次而不是2到无穷大。

    这是JSON文件示例;

    [
    {   
        "Artist": "",
        "Album": "",
        "Year":"",
        "Genre": "", 
        "Song": "",
        "Location": "",
        "Track": "",
        "Img": "",
        "Composer":""
    },
        {   
        "Artist": "The Rolling Stones",
        "Album": "Hot Rocks (1964-1971)",
        "Year":"2002",
        "Genre": "Rock", 
        "Song": "Heart of Stone",
        "Location": "scr/music/TheRollingStones/HeartofStone.mp3",
        "Track": "2",
        "Img": "scr/music/TheRollingStones/img/HotRocks.jpg",
        "Record":"Sony Music"
    },
        {   
        "Artist": "The Rolling Stones",
        "Album": "Hot Rocks (1964-1971)",
        "Year":"2002",
        "Genre": "Rock", 
        "Song": "Sympathy For The Devil",
        "Location": "scr/music/TheRollingStones/SympathyForTheDevil.mp3",
        "Track": "15",
        "Img": "scr/music/TheRollingStones/img/HotRocks.jpg",
        "Record":"Sony Music"
    },
            {   
        "Artist": "Led Zeppelin",
        "Album": "The Complete Led Zeppelin",
        "Year":"2007",
        "Genre": "Rock", 
        "Song": "Good Times Bad Times",
        "Location": "scr/music/LedZeppelin/GoodTimesBadTimes.mp3",
        "Track": "1",
        "Img": "scr/music/LedZeppelin/img/The Complete Led Zeppelin.jpg",
        "Record":"Atlantic Records"
    }
    ]
    

    Javascript文档

        $.getJSON('scr/json/musicdata.json', function(data){
            var output = '<ol>';
                 data.sort(function(a, b){
                 return [a.Artist] < [b.Artist] ?  0 : 1;
             });//End of Sort by Artist 
             $.each(data, function(key,val) {
             if(val.Artist != ""){
             if(PreArtis != val.Artist){
            output += '<li><a class="songname" href="#" data-src="'+ val.Location +'">' + val.Artist + '</a></li>';
                var PreSong = val.Artist ;
             }//End of PreSong != Song
            }//End of val.Artist     
            });//End of Each 
             output += '</ol>';
            $("#wrapper").append(output);
            });//End of getJSON 
    

    Html

    感谢您对的帮助

  • 尝试

    var songs = {};
    $.each(data, function(key,val) {
        if(val.Artist != ""){
            var key = val.Artist + '@' + val.Album;
            if(!songs[key]){
                output += '<li><a class="songname" href="#" data-src="'+ val.Location +'">' + val.Artist + '</a></li>';
                songs[key] = true ;
            }//End of PreSong != Song
        }//End of val.Artist     
    });//End of Each 
    output += '</ol>';
    $("#wrapper").append(output);
    

    演示:Fiddle

    您可以更改key以查找唯一的组合。例如:如果你想要一个独特的组合艺术家,专辑和歌曲,那么使用var key = val.Artist + '@' + val.Album + val.Song