在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)?
大家好,我正在开发一个音乐播放器,我正在使用Json来存储我的ID3或AKA"MP3元数据"。我面临的问题是,我正在提取一个对象并训练gf,看看我是否可以比较值,如果两个对象都有相同的值,不要重复打印。如果我只想让艺术家在
这是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
;
相关文章:
- 循环对象时更新页面上的DIV元素
- 如何在循环对象时有条件地使用数据
- Javascript循环对象
- 如何循环对象中的javascript对象并查找属性
- JSON.parse在循环对象上未出错
- TypeError:分析隐藏值时,javascript中的循环对象值
- 以随机顺序定位和循环对象
- 循环对象文本数组并匹配客户
- for/in 循环对象到数组
- Javascript 不等待 For 循环.对象值不变
- 循环对象的顺序只能在迭代期间中断
- 循环对象以获取索引值
- Javascript 循环 + 对象问题:如何使用循环获取对象中的必需项
- 使用 requestAnimationFrame 的 JS 游戏循环 - 对象函数只调用一次
- 循环对象上的垃圾回收
- Javascript循环对象时打印页面
- 循环对象数组,直到lat/lng不为零
- javascript中循环对象的问题
- 循环对象数组
- 使用字符串数组循环对象