這個問題的標題可能有點誤導,但它是最準確地描述我遇到的問題。從數組中最大的對象屬性返回值 - JS
我目前正在製作一個自定義燈箱腳本,類似於Facebook和airbnb上可以找到的腳本。一旦用戶點擊圖像,燈箱不會調整爲內容的大小,而是圖像以其周圍的黑色區域爲中心(如果您是普通的FB用戶,您應該知道我的意思)。
我存儲所述圖像以在一個JS陣列被用於收藏如下(從MySQL數據庫生成:
var item_images = [
{ 'id': 2, 'url': '50929ab7ae8e5.jpg', 'caption': 'My Photo # 1', 'width': 1000, 'height': 750 },
{ 'id': 7, 'url': '50929ab7ae8e8.jpg', 'caption': 'My Photo # 1', 'width': 1000, 'height': 800 },
{ 'id': 3, 'url': '50929ac161d10.jpg', 'caption': 'My Photo # 2', 'width': 1000, 'height': 750 },
{ 'id': 4, 'url': '50929acbe8dc8.jpg', 'caption': 'My Photo # 3', 'width': 1000, 'height': 750 }
];
我需要在JS一個函數來找到最大寬度和最大高度所需爲的圖像。例如,給定上面的數據,我想的函數GetMaxSizes()
將返回800
(陣列中最大高度)和1000
(陣列中的最大寬度)。
是否有一個更有效的而不是循環遍歷整個數組並比較所有內容?我關心的是這個問題LL變得緩慢,如果有很多元素的內部,item_images
:
function GetRequiredHeight()
{
var req_height = 0,
req_width = 0;
for(var i in item_images)
{
var image = item_images[i];
if(image.width > req_width) { req_width = image.width };
if(image.height > req_height) { req_height = image.height };
}
return { width: req_width, height: req_height };
}
我不認爲有更有效的方法。除了你的算法是O(n),它與輸入的大小呈線性關係,所以我認爲它不應該成爲你的擔心。 – Masiar
感謝您的輸入,@Masiar。 – BenM