Javascript 如何筛选从AmazonS3返回的文件名以.txt结尾的对象列表

Javascript 如何筛选从AmazonS3返回的文件名以.txt结尾的对象列表,javascript,amazon-web-services,amazon-s3,Javascript,Amazon Web Services,Amazon S3,在这里,我可以从amazon s3 bucket获得对象列表: var params = {Bucket: 'Grade'}; s3.listObjects(params, function (err, data) { alert(data.contents.length); // here I am getting count. } 这是从AmazonS3 bucket返回给我的对象列表。如何从列表中筛选对象列表 在这里,我试图根据txt文件名筛选项目,但该文件名无法正常工作。我需要

在这里,我可以从amazon s3 bucket获得对象列表:

var params = {Bucket: 'Grade'};
s3.listObjects(params, function (err, data) {
    alert(data.contents.length); // here I am getting count.
}
这是从AmazonS3 bucket返回给我的对象列表。如何从列表中筛选对象列表

在这里,我试图根据txt文件名筛选项目,但该文件名无法正常工作。我需要先过滤它,然后在表中显示相同的内容

var files = $([{  "Key": + ".txt" }])
    .filter(function (i, n) {
        return n.Key ===  + ".txt";
    });

alert(files.contents.length);
  • 我只需要文件名以txt结尾的项目

  • 我需要跳过文件名不以txt格式结尾的对象

  • 我需要过滤那些文件名以txt结尾并显示在表中的对象

  • 表包含5列,我只需要显示文件名以.txt结尾的对象

  • 我们需要将文件名与txt.NET匹配,然后进行筛选,我正在使用javascript来完成这项工作,但没有得到预期的结果

如何达到我的要求?
非常感谢您的帮助。

因为这永远不会奏效:

var files = $([{  "Key": + ".txt" }])
            .filter(function (i, n) {
                return n.Key ===  + ".txt";
            });

          alert(files.contents.length);
您不需要设置那么多加号。 像这样省略
+

var files = $([{  "Key": ".txt" }])
            .filter(function (i, n) {
                return n.Key === ".txt";
            });

这应该行得通。

您可以在回调函数本身中按文件扩展名进行筛选:

const params = {
    Bucket: 'Grade'
};

s3.listObjects(params, function(err, data) {
    if (err) console.log(err);
    else {
        const textFiles = data.Contents.filter(function(file){
            return (file.Key.indexOf('.txt') > 0);
        });

        console.log(textFiles);
    }
});

这是返回我错误的计数..我有更多的文件与txt,但它没有返回准确的,我认为它没有过滤正确你能给我们一个样本返回s3?