我如何获得大小最大的文件。如果我有这样的例子?
let files = [
{
fileName: 'untitled',
size: 3456
},
{
fileName: 'New Folder',
size: 234
},
{
fileName: 'photos',
size: 23
},
{
fileName: 'ruby files',
size: 30
},
答案 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]);
该策略是确保您的文件列表有序。