2016-03-15 49 views
1

我想產生這樣的

album = {[ 
name:'', 
image:'', 
tracks:[] 
],[ 
name:'', 
image:'', 
tracks:[] 
]} 

但現在我被困在附加價值進右JSON對象。

var albums = {}; 

$.get("https://api.spotify.com/v1/artists/1rQX6kg84TqcwGtZHYIdn4/albums", function(data, status) { 
    tempArr = []; 
    $.each(data.items, function(i, obj) { 

    tempArr.push(obj.images[0].url); 
    albums['image'] = tempArr; 
    }); 

    console.log(albums) 

}); 

您可以在這裏看到http://jsfiddle.net/u5me8csx/1 任何幫助的albumn數據?

+0

你需要對象的數組所需的格式是不是?那麼你的上面的結構是錯的 –

+0

api返回的值的結構是什麼 –

+0

數據中沒有跟蹤信息? –

回答

1

對於albums對象問題中的語法是錯誤的,您已交換用於對象和數組表示法的括號。

您可以使用Array.map()來遍歷項目,並創建一個類似

$.get("https://api.spotify.com/v1/artists/1rQX6kg84TqcwGtZHYIdn4/albums", function(data, status) { 
 
    var albums = data.items.map(function(item) { 
 
    return { 
 
     name: item.name, 
 
     image: item.images[0], 
 
     tracks: [] 
 
    } 
 
    }); 
 
    console.log(albums); 
 
    $('#result').text(JSON.stringify(albums, null, 2)) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="result"></pre>

+0

哇我不知道可以用地圖。你可以隨時使用地圖嗎?我認爲這很大程度上取決於響應結構如何正確?你可以做一個非映射版本嗎?在這種情況下,我想學習如何將數組放入對象中。謝謝。 – Jennifer

+0

@Jennifer你正在把對象放入一個數組中......'items'是一個對象數組,我們使用[Array.map()](https://developer.mozilla.org/en-US/docs/ Web/JavaScript/Reference/Global_Objects/Array/map)函數將地圖中的每個項目轉換爲不同的格式並返回這些對象的新數組 –

+0

數組的對象是什麼意思?有什麼叫對象數組?我很困惑。像'{name:['abc','def']}'是數組或對象數組的對象? – Jennifer

相關問題