簡體   English   中英

如何在鍵值對數組JavaScript中尋找最大的數字

[英]How to look for the largest number in a key value pair array JavaScript

我如何獲得大小最大的文件。 如果我有這樣的例子?

 let files = [ { fileName: 'untitled', size: 3456 }, { fileName: 'New Folder', size: 234 }, { fileName: 'photos', size: 23 }, { fileName: 'ruby files', size: 30 }, 

您可以使用for循環來檢查大小:

 let files = [{ fileName: 'untitled', size: 3456 },{ fileName: 'New Folder', size: 234 },{ fileName: 'photos', size: 23 },{ fileName: 'ruby files', size: 30 }] var largest = files[0].size; var fileName = files[0].fileName; for (let i=1; i < files.length; i++){ if (files[i].size > largest) { largest = files[i].size; fileName = files[i].fileName; } } console.log(fileName); 

您可以使用reduce:

let files = [
{
    fileName: 'untitled',
    size: 3456
},
{
    fileName: 'New Folder',
    size: 234

},
{
    fileName: 'photos', 
    size: 23

},
{
    fileName: 'ruby files',
    size: 30

}]
let maxSizedFfile = files.reduce((maxFile, file) => maxFile && maxFile.size > file.size ? maxFile : file, null);

此函數將返回文件對象的最大大小。

 let files = [ { fileName: 'untitled', size: 3456 }, { fileName: 'New Folder', size: 234 }, { fileName: 'photos', size: 23 }, { fileName: 'ruby files', size: 30 }] alert(Math.max.apply(Math, files.map(function(o) { return o.size; }))); 

您可以通過采用更大尺寸的對象來減少數組。

 var files = [{ fileName: 'untitled', size: 3456 }, { fileName: 'New Folder', size: 234 }, { fileName: 'photos', size: 23 }, { fileName: 'ruby files', size: 30 }], max = files.reduce((a, b) => a.size > b.size ? a : b); console.log(max.fileName); 

更簡單的方法是按大小對數組進行排序並獲取第一個,因此您可以執行以下操作:

 const files = [ { fileName: 'untitled', size: 3456 }, { fileName: 'New Folder', size: 234 }, { fileName: 'photos', size: 23 }, { fileName: 'ruby files', size: 30 } ] const files2 = files.sort((a,b) => a.size < b.size ? 1 : -1); console.log(files2[0]); 

該策略是確保您具有文件的有序列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM