[英]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.