2014-04-03 4 views
0

Я занимаюсь интернатурой в небольшой компании, и я только новичок в jQuery. Мне было поручено выполнить эту задачу, когда мне нужно проанализировать имя фотографа из API Flickr и напечатать имя пользователя в списке, а также убедиться, что дубликатов нет. Это то, что я до сих пор,Как я могу убедиться, что имена пользователей не дублируются в flickr API? Затем распечатайте их в html

var list = $("<ul></ul>");// This creates and unordered list. 
$.each(data.photos.photo, function(i, set){ 
    var link = $("<li/>").attr("ownername", set.owner).text(set.ownername); 
    var li = $("<li/>").append(link); 
    $(list).append(li); 
    $("#flickr-users").append(list); 
}); 
var seen = {}; 
$('ul li').each(function() { 
    var txt = $(this).text(); 
    if (seen[txt]) 
    $(this).remove(); 
    else 
    seen[txt] = true; 
}); 
console.log(seen); //it shows in the console all usernames which are true and they aren't duplicated 

Так что я просто изо всех сил, чтобы напечатать имена на HTML файл со всеми именами пользователей, которые устанавливаются так.

Буду признателен за любую помощь по этому вопросу.

ответ

0

посмотреть на jQuery Unique

с 1 строки кода вы сортировки и удаления duplidates:

var myArray = <your array>; 


var myUniquesArray =jQuery.unique(myArray); 

EDIT:

здесь демонстрационный Fiddle

EDIT 2:

, чтобы объединить все ваши массивы s в один массив, вы можете использовать

jQuery.merge(first, second); 

возвращает массив третьего с всех значения от первого и второго

так, что вы делаете, в основном, идет по всем ваши массивы и объединить их в ваш окончательный массив:

см. еще одно демо Fiddle

+0

спасибо за sugestion, но он, похоже, не работает, созданный и пустой массив. Затем я нажимаю все имена пользователей, которые я получаю от json, и храните их там. Затем я использую уникальный метод, но он ничего не делает, когда я пытаюсь распечатать его в консоли. var nameArray = []; $ (ссылка) .each (функция() { nameArray.push ($ (это) .text()); вар UniqueName = jQuery.unique (NameArray); console.log (UniqueName); }) ; @Banana – user3392348

+0

вы немного ошиблись мой друг, функция '.unique()' возвращает массив с уникальными элементами. Я обновил свой ответ на примере. – Banana

+0

Итак, моя проблема заключается в том, что я просматриваю текст и получаю каждое имя пользователя, но не храним его в массиве, но его не сохраняют в одном массиве, что вызывает проблему. ["Cesar Pics"] ["superkimbo"] [ Cesar Pics "] [" Сезар Pics "] [" Сезар Pics "] [" Сезар Pics "] [" superkimbo "] [" superkimbo "] как бы я хранить все в одном массиве? Извините, что я рад плохому в этом. – user3392348