2013-02-26 3 views
0

Я новичок в JavaScript и jQuery, но изучаю, когда я делаю вещи. Теперь я работаю с last.fm api для JS (https://github.com/fxb/javascript-last.fm-api), и я пытаюсь получить первый альбом из своего списка.Получение первого значения массива

я выборки данных с помощью следующего кода:

lastfm.track.getInfo({track: activeMedia.title, artist: activeMedia.author}, {success: function(trackInfoResult){ 
// doing things with trackInfoResult 
}, error: function(code, message){ 
    console.log("Error code: " + code); 
}}); 

Выход для этого в следующей структуре (находится на http://www.last.fm/api/show/track.getInfo):

<track> 
    <id>1019817</id> 
    <name>Believe</name> 
    <mbid/> 
    <url>http://www.last.fm/music/Cher/_/Believe</url> 
    <duration>240000</duration> 
    <streamable fulltrack="1">1</streamable> 
    <listeners>69572</listeners> 
    <playcount>281445</playcount> 
    <artist> 
    <name>Cher</name> 
    <mbid>bfcc6d75-a6a5-4bc6-8282-47aec8531818</mbid> 
    <url>http://www.last.fm/music/Cher</url> 
    </artist> 
    <album position="1"> 
    <artist>Cher</artist> 
    <title>Believe</title> 
    <mbid>61bf0388-b8a9-48f4-81d1-7eb02706dfb0</mbid> 
    <url>http://www.last.fm/music/Cher/Believe</url> 
    <image size="small">http://userserve-ak.last.fm/serve/34/8674593.jpg</image> 
    <image size="medium">http://userserve-ak.last.fm/serve/64/8674593.jpg</image> 
    <image size="large">http://userserve-ak.last.fm/serve/126/8674593.jpg</image> 
    </album> 
    <toptags> 
    <tag> 
     <name>pop</name> 
     <url>http://www.last.fm/tag/pop</url> 
    </tag> 
    ... 
    </toptags> 
    <wiki> 
    <published>Sun, 27 Jul 2008 15:44:58 +0000</published> 
    <summary>...</summary> 
    <content>...</content> 
    </wiki> 
</track> 

Как мое имя исполнителя и идентификатор я могу управляйте следующим кодом:

console.log(rackInfoResult.track.name); 

Но теперь я хочу иметь первый альбом. Как выбрать альбом с позицией = "1"?

+0

ли вы попробовать 'rackInfoResult.track.album'? – adeneo

+0

да, это дало мне [объект Object] в результате – Kiwi

ответ

0

Тогда вы должны попробовать сделать так. Это сработало для меня.

в функции успеха вашего скрипта

success: function(trackInfoResult){ 
    var x = eval('('+trackInfoResult+')'); 
     console.log(x);  
     console.log(x[0]); 
    } 

я думаю, что это должно работать для вас также.

+0

, который выбрасывает: undefined – Kiwi

+0

Я изменил код. пожалуйста, сообщите мне вывод в обоих случаях. что я добавил сейчас. –

+0

Что бросает: Неожиданный идентификатор – Kiwi

0

Вы можете попробовать:

var myAlbum = trackInfoResult.track.album; 
if (parseInt(myAlbum.getAttribute('position'), 10) === 1) { 
    // do stuff here 
} 
1

Ok, я нашел его.

Я использовал следующий код для отслеживания правильных элементов

for(var key in trackInfoResult.track) { 
    var value = trackInfoResult.track[key]; 
    console.log(key + " : " + value); 
} 

и добавляющие каждый раз, когда один из ключей позади trackInfoResult.track

Смежные вопросы