Jquery Javascript,从每个循环中获取唯一值或group by value.id
我将值存储在localStorage中,并在从localStorage检索后将其转换为数组 我只想返回唯一的值,或者可能对它们进行分组,以避免重复。我在循环中使用了下划线Jquery Javascript,从每个循环中获取唯一值或group by value.id,jquery,arrays,regex,foreach,underscore.js,Jquery,Arrays,Regex,Foreach,Underscore.js,我将值存储在localStorage中,并在从localStorage检索后将其转换为数组 我只想返回唯一的值,或者可能对它们进行分组,以避免重复。我在循环中使用了下划线 $.get_played_songs = function(){ if (localStorage.getItem("local_songs") === null) { recent_holder.html('Play some music');
$.get_played_songs = function(){
if (localStorage.getItem("local_songs") === null) {
recent_holder.html('Play some music');
} else {
var StoredPlays = JSON.parse(localStorage.getItem('local_songs'));
var i=0
_.each(StoredPlays, function(value, key){
recent_holder.append("<div class='recently_played_jams' data-recently_played_sid='"+value.sid+"'>"+value.title+"</div>");
});
}
}
所以我想按sid分组。可能是一些正则表达式。允许您传入一个函数,该函数确定在确定唯一性时要查看的内容,因此如果是sid
使它们唯一:
StoredPlays = _.uniq(StoredPlays, function(play) { return play.sid; });
var StoredPlays=[
{标题:“Song1”,sid:“47”},
{标题:“Song1”,sid:“47”},
{标题:“Song1”,sid:“47”},
{标题:“歌曲12”,希德:“47”},
{标题:“Song2”,sid:“47”},
{标题:“Song2”,sid:“47”},
{标题:“Song2”,sid:“47”}
];
StoredPlays=uu.uniq(StoredPlays,函数(play){return play.sid;});
log(JSON.stringify(StoredPlays))代码>
你所说的“团体”是什么意思?你被困在哪里?下划线有很多用于在数组上操作的实用程序。@T.J.Crowder,Ok group有点过时,类似于在sql中可以“按用户ID分组”,所有这些,我试图解释我不想返回重复的。你可以使用Lo-Das.js代替下划线.js()这通常要快得多,并且与您当前的code@Konstantin:但它是否像下划线那样对迭代器函数使用了不正确的术语“迭代器对象”;-)@T.J.Crowder,你把什么叫做“play”作为参数?它不应该是u.uniq(StoredPlays,function(value,key){console.log(value);})@Relm:play
是StoredPlays
中的每个条目。我添加了一些实例。我建议您通读文档。
StoredPlays = _.uniq(StoredPlays, function(play) { return play.sid; });