如何在键值对数组JavaScript中寻找最大的数字

时间:2018-11-04 09:12:30

标签: javascript arrays key-value

我如何获得大小最大的文件。如果我有这样的例子?

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

5 个答案:

答案 0 :(得分:2)

您可以使用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);

答案 1 :(得分:1)

此函数将返回文件对象的最大大小。

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; })));

答案 2 :(得分:1)

您可以通过使用更大尺寸的对象来缩小数组。

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);

答案 3 :(得分:0)

您可以使用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);

答案 4 :(得分:0)

更简单的方法是按大小对数组进行排序并获取第一个,因此您可以执行以下操作:

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]);

该策略是确保您的文件列表有序。