JQuery地图过滤?

时间:2016-12-09 20:43:26

标签: javascript jquery

我已将list.js文件复制并粘贴到互联网上。它获取了一个文件列表。但是,我想过滤文件,以便返回的唯一文件是名称为index.html的文件。我不熟悉Javascript和jQuery,但我意识到改变可能需要在前1-9行内发生。任何帮助都会很棒!

function getInfoFromS3Data(xml) {    
  var files = $.map(xml.find('Contents'), function(item) {    
    item = $(item);    
    return {    
      Key: item.find('Key').text(),    
      LastModified: item.find('LastModified').text(),    
      Size: bytesToHumanReadable(item.find('Size').text()),    
      Type: 'file'    
    }    
  });

  var directories = $.map(xml.find('CommonPrefixes'), function(item) {    
    item = $(item);    
    return {    
      Key: item.find('Prefix').text(),    
      LastModified: '',    
      Size: '0',    
      Type: 'directory'    
    }    
  });

  if ($(xml.find('IsTruncated')[0]).text() == 'true') {    
    var nextMarker = $(xml.find('NextMarker')[0]).text();    
  } else {    
    var nextMarker = null;    
  }

  return {    
    files: files,    
    directories: directories,    
    prefix: $(xml.find('Prefix')[0]).text(),    
    nextMarker: encodeURIComponent(nextMarker)    
  }    
}

1 个答案:

答案 0 :(得分:1)

要实现此目的,您需要检查文件的名称(可能是示例中的Key)与您需要的内容匹配并返回对象,如果没有,则需要null以便跳过该文件。试试这个:

var files = $.map(xml.find('Contents'), function(item) {    
  var item = $(item);   

  if (item.find('Key').text().toLowerCase() !== 'index.html')
    return null;

  return {    
    Key: item.find('Key').text(),    
    LastModified: item.find('LastModified').text(),    
    Size: bytesToHumanReadable(item.find('Size').text()),    
    Type: 'file'    
  }    
});