【问题标题】:unable to create a sorted array based on creation date of s3 buckets无法根据 s3 存储桶的创建日期创建排序数组
【发布时间】:2015-06-19 17:33:15
【问题描述】:

我正在尝试根据创建日期(最新的在前)对一组 s3 存储桶进行排序。我在排序数组中多次重复相同的数组。我知道我在这里遗漏了一些东西,但无法弄清楚是什么。我的代码是:

var bucketListArr = [];
for (var index in data.Buckets) {
    var bucket = data.Buckets[index];
    //if(bucketList[index] == null) bucketList[index] = [];
    bucketListArr.push({
         "bucketName": bucket.Name,
         "creationDate": bucket.CreationDate
    });
    // bucketList[index][0] = bucket.Name;
   // bucketList[index][1] = bucket.CreationDate;
 }

 var sortedBucketListArr = [];
 //console.log("Bucket List :: ", bucketList, " length :: " , bucketList.length );
 for(var i= 0;i < bucketListArr.length; i++){
    for(var j = i + 1; j< bucketListArr.length; j++){
       if(bucketListArr[i].creationDate >= bucketListArr[j].creationDate){
          sortedBucketListArr.push({
                   "bucketName": bucketListArr[i].bucketName,
                   "creationDate": bucketListArr[i].creationDate
          });
     }
   }
 }
 console.log("Sorted List :: ", sortedBucketListArr);

提前感谢您的帮助。

【问题讨论】:

    标签: javascript arrays sorting amazon-s3


    【解决方案1】:

    我能够解决这个问题。问题是日期存储为字符串。因此,需要先将其转换为 Date,然后才能在 date 属性上对数组进行排序。我将代码更改为:

    var bucketListArr = [];
    for (var index in data.Buckets) {
        var bucket = data.Buckets[index];
        //if(bucketList[index] == null) bucketList[index] = [];
        bucketListArr.push({
             "bucketName": bucket.Name,
             "creationDate": bucket.CreationDate
        });
    }
    bucketListArr.sort(function (a, b) {
            var dateA = a.creationDate, dateB = b.creationDate;
            return dateB - dateA;//a.strParamToSortOn < b.strParamToSortOn;
    });
    console.log("Sorted List :: ", bucketListArr);
    

    【讨论】:

    猜你喜欢
    • 2021-07-03
    • 1970-01-01
    • 2019-05-31
    • 2023-03-07
    • 2018-02-26
    • 1970-01-01
    • 2020-02-08
    • 1970-01-01
    相关资源
    最近更新 更多