的動態長度$ .MAP我有以下幾點:的jQuery如何通過一個數組
transformResult: function(response) {
if (response && response.buckets && response.buckets[0] && response.buckets[0].documents) {
return {
suggestions: $.map(response.buckets[0].documents, function(dataItem) {
return { value: dataItem._id, data: {
key: response.buckets[0].key,
url: dataItem.url
}
};
})
};
}
我使用response.buckets[0]
,以確保至少一個水桶在陣列中存在。可以有0個或1個以上的桶。問題是,現在的建議是剛剛回國的第一桶W [0] response.buckets[0].documents
我怎樣才能獲得建議,返回0以上$.map(response.buckets[0].documents
感謝
更新
transformResult: function(response) {
var suggestions = {
suggestions: {}
};
if(!response || !response.buckets) {
return suggestions;
}
for(var i=0;i<response.buckets.length;i++) {
var bucket = response.buckets[i];
if(!!bucket.documents) {
suggestions.concat($.map(bucket.documents, function(item) {
return {
value: item._id,
data: {
key: bucket.key,
url: item.url
}
}
}));
};
}
return suggestions;
},
本所現示數寬:Uncaught TypeError: suggestions.concat is not a function
你爲什麼不檢查'length':'響應.buckets.length' ??? –
@ user2181397不,如果'response.buckets [0]'沒有定義,它會引發一個錯誤 –
第一:'var suggestions'應該是'{suggestions:[]}',第二:Array.concat返回一個包含結果,它不會改變當前的數組。所以你實際上必須編寫'suggestions.suggestions = suggestions.suggestions.concat(...)' – Thomas