[英]How can I sort an object using a key value of the object
orders: {
orders: [
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 3
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKLtgt8Q1t7lSSLqYsH',
oldPrice: '840',
productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer',
unitPrice: '729',
units: 1
}
],
time: '26/01/2021, 10:42:17',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 1253,
id: '-MRx5pf06D6Jq-dha9L5'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 1
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKF-drZP73W4DfO72bl',
oldPrice: '375',
productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta',
unitPrice: '331',
units: 1
},
{
id: '-MKLt0meR1fvFF4ZgNY2',
oldPrice: '417',
productName: 'Tata Premium Tea (Pouch)',
unitPrice: '371',
units: 1
}
],
time: '26/01/2021, 20:19:07',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 970,
id: '-MRz9rMOBbWcCY-fFDd8'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 1
}
],
time: '25/01/2021, 15:25:05',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 128,
id: '-MRsxyfq3vWm1dFZl_oW'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 1
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKF-drZP73W4DfO72bl',
oldPrice: '375',
productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta',
unitPrice: '331',
units: 1
},
{
id: '-MKLt0meR1fvFF4ZgNY2',
oldPrice: '417',
productName: 'Tata Premium Tea (Pouch)',
unitPrice: '371',
units: 1
}
],
time: '26/01/2021, 20:19:09',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 970,
id: '-MRz9ragOIxJXilPF3MB'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 1
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKF-drZP73W4DfO72bl',
oldPrice: '375',
productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta',
unitPrice: '331',
units: 1
},
{
id: '-MKLt0meR1fvFF4ZgNY2',
oldPrice: '417',
productName: 'Tata Premium Tea (Pouch)',
unitPrice: '371',
units: 1
},
{
id: '-MKLtgt8Q1t7lSSLqYsH',
oldPrice: '840',
productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer',
unitPrice: '729',
units: 1
},
{
id: '-MKLuAm-emA5UzIhXpAD',
oldPrice: '162',
productName: 'Ghadi Detergent Powder',
unitPrice: '147',
units: 1
},
{
id: '-MKLwhRgudFHBbPR18lW',
oldPrice: '800',
productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer',
unitPrice: '720',
units: 1
},
{
id: '-MKLyeF47-VAn9Q6nJCf',
oldPrice: '134',
productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar',
unitPrice: '113',
units: 1
}
],
time: '24/01/2021, 12:16:30',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 2679,
id: '-MRn8D25UUj5rRfAJ5EN'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 2
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKLtgt8Q1t7lSSLqYsH',
oldPrice: '840',
productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer',
unitPrice: '729',
units: 1
},
{
id: '-MKLubjoPaBv3lUIeEb6',
oldPrice: '1050',
productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer',
unitPrice: '899',
units: 2
}
],
time: '23/02/2021, 12:44:06',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 2923,
id: '-MUCjE5dAurxRu9Ac6EB'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '8901138509231',
oldPrice: '250',
productName: 'Aashirvaad Atta',
unitPrice: '200',
units: 1
}
],
time: '25/01/2021, 15:25:37',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 200,
id: '-MRsy5ZvNiIai7U-O5Rj'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKLwhRgudFHBbPR18lW',
oldPrice: '800',
productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer',
unitPrice: '720',
units: 2
},
{
id: '-MKLyeF47-VAn9Q6nJCf',
oldPrice: '134',
productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar',
unitPrice: '113',
units: 2
},
{
id: '-MKLzSzyLKiALq4f6RTS',
oldPrice: '155',
productName: 'Vim Lemon Dishwash Gel (Bottle)',
unitPrice: '143',
units: 2
}
],
time: '24/01/2021, 11:44:40',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 1952,
id: '-MRn0w2Srovbr3-0vh9j'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 2
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 1
},
{
id: '-MKLtgt8Q1t7lSSLqYsH',
oldPrice: '840',
productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer',
unitPrice: '729',
units: 1
}
],
time: '26/01/2021, 11:09:12',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 1125,
id: '-MRxC-8BgmG2InUeUwrV'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKLzSzyLKiALq4f6RTS',
oldPrice: '155',
productName: 'Vim Lemon Dishwash Gel (Bottle)',
unitPrice: '143',
units: 2
}
],
time: '25/01/2021, 15:27:10',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 286,
id: '-MRsyS9Ez1_wIAxqMMIF'
},
{
addressDetails: {
addressLine1: 'Dhruba\'s Home',
addressLine2: 'Dhauliguri',
city: 'Kokrajhar',
email: 'dhruba@mac.com',
landmark: 'Chandrapara Gas Agency',
phoneNo: '9876543210',
pinCode: '783321'
},
products: [
{
id: '-MKBFRQbLhkV5yvtclpD',
oldPrice: '186',
productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil',
unitPrice: '128',
units: 1
},
{
id: '-MKBFdmYxUmkl0snpb-o',
oldPrice: '220',
productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)',
unitPrice: '140',
units: 3
},
{
id: '-MKLtgt8Q1t7lSSLqYsH',
oldPrice: '840',
productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer',
unitPrice: '729',
units: 1
},
{
id: '-MKLubjoPaBv3lUIeEb6',
oldPrice: '1050',
productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer',
unitPrice: '899',
units: 4
},
{
id: '-MKLw4cxIo5TUgrVkgmq',
oldPrice: '420',
productName: 'Tide Ultra 3 in 1 Clean Detergent Powder - Get 1 kg Free',
unitPrice: '369',
units: 4
}
],
time: '27/01/2021, 22:06:46',
userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2',
amount: 6349,
id: '-MS3h5JurxnAWlLL8J4l'
}
],
loading: false,
error: null,
fetched: true
}
}
我想按用戶下訂單的時間對這個 object 進行排序。 我希望最新的訂單位於數組的開頭,最舊的訂單位於最后。 我嘗試使用排序 function,但它只排序了一個月的訂單。 如果訂單是在不同月份下的,它不能對訂單進行排序。
fetchedOrders.sort( function(a,b) {
var timeA = new Date(a.time);
var timeB = new Date(b.time);
var timeA = new Date.parse(a.time);
var timeB = new Date.parse(b.time);
if(a.time < b.time)
return 1;
if(a.time > b.time)
return -1;
return 0;
});
您在排序 function 中創建 Date() 對象,但不使用它們進行比較。 相反,您正在比較 object 中的原始時間字符串。
原始時間戳不是排序友好的。
如果您真的想使用它進行排序,它應該看起來像2021/02/23, 12:44:06
而不是23/02/2021, 12:44:06
時間比較不能被認為是正確的。 您甚至似乎都沒有使用剛剛創建的日期變量。 排序 function 應更改如下。
fetchedOrders.sort( function(a,b) {
var timeA = Date.parse(a.time);
var timeB = Date.parse(b.time);
if(timeA < timeB)
return 1;
if(timeA > timeB)
return -1;
return 0;
});
Date.parse()
function 創建日期/時間的可量化表示。 這是您應該在排序 function 中比較的內容。
var fetchedOrders = [ { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 3 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 } ], time: '26/01/2021, 10:42:17', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1253, id: '-MRx5pf06D6Jq-dha9L5' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 } ], time: '26/01/2021, 20:19:07', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9rMOBbWcCY-fFDd8' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 } ], time: '25/01/2021, 15:25:05', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 128, id: '-MRsxyfq3vWm1dFZl_oW' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 } ], time: '26/01/2021, 20:19:09', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9ragOIxJXilPF3MB' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLuAm-emA5UzIhXpAD', oldPrice: '162', productName: 'Ghadi Detergent Powder', unitPrice: '147', units: 1 }, { id: '-MKLwhRgudFHBbPR18lW', oldPrice: '800', productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer', unitPrice: '720', units: 1 }, { id: '-MKLyeF47-VAn9Q6nJCf', oldPrice: '134', productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar', unitPrice: '113', units: 1 } ], time: '24/01/2021, 12:16:30', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2679, id: '-MRn8D25UUj5rRfAJ5EN' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 2 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLubjoPaBv3lUIeEb6', oldPrice: '1050', productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer', unitPrice: '899', units: 2 } ], time: '23/02/2021, 12:44:06', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2923, id: '-MUCjE5dAurxRu9Ac6EB' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '8901138509231', oldPrice: '250', productName: 'Aashirvaad Atta', unitPrice: '200', units: 1 } ], time: '25/01/2021, 15:25:37', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 200, id: '-MRsy5ZvNiIai7U-O5Rj' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKLwhRgudFHBbPR18lW', oldPrice: '800', productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer', unitPrice: '720', units: 2 }, { id: '-MKLyeF47-VAn9Q6nJCf', oldPrice: '134', productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar', unitPrice: '113', units: 2 }, { id: '-MKLzSzyLKiALq4f6RTS', oldPrice: '155', productName: 'Vim Lemon Dishwash Gel (Bottle)', unitPrice: '143', units: 2 } ], time: '24/01/2021, 11:44:40', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1952, id: '-MRn0w2Srovbr3-0vh9j' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 2 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 } ], time: '26/01/2021, 11:09:12', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1125, id: '-MRxC-8BgmG2InUeUwrV' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKLzSzyLKiALq4f6RTS', oldPrice: '155', productName: 'Vim Lemon Dishwash Gel (Bottle)', unitPrice: '143', units: 2 } ], time: '25/01/2021, 15:27:10', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 286, id: '-MRsyS9Ez1_wIAxqMMIF' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 3 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLubjoPaBv3lUIeEb6', oldPrice: '1050', productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer', unitPrice: '899', units: 4 }, { id: '-MKLw4cxIo5TUgrVkgmq', oldPrice: '420', productName: 'Tide Ultra 3 in 1 Clean Detergent Powder - Get 1 kg Free', unitPrice: '369', units: 4 } ], time: '27/01/2021, 22:06:46', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 6349, id: '-MS3h5JurxnAWlLL8J4l' } ] fetchedOrders.sort( function(a,b) { var timeA = Date.parse(a.time); var timeB = Date.parse(b.time); if(timeA < timeB) return 1; if(timeA > timeB) return -1; return 0; }); console.log(fetchedOrders);
您可以將time
值轉換為YYYY-MM-DD hh:mm:ss
格式,然后使用string#localeCompare
按字典順序對其進行排序。
const orders = [{ time: '26/01/2021, 10:42:17', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1253, id: '-MRx5pf06D6Jq-dha9L5' }, { time: '26/01/2021, 20:19:07', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9rMOBbWcCY-fFDd8' }, { time: '25/01/2021, 15:25:05', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 128, id: '-MRsxyfq3vWm1dFZl_oW' }, { time: '26/01/2021, 20:19:09', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9ragOIxJXilPF3MB' }, { time: '24/01/2021, 12:16:30', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2679, id: '-MRn8D25UUj5rRfAJ5EN' }, { time: '23/02/2021, 12:44:06', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2923, id: '-MUCjE5dAurxRu9Ac6EB' }, { time: '25/01/2021, 15:25:37', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 200, id: '-MRsy5ZvNiIai7U-O5Rj' }, { time: '24/01/2021, 11:44:40', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1952, id: '-MRn0w2Srovbr3-0vh9j' }, { time: '26/01/2021, 11:09:12', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1125, id: '-MRxC-8BgmG2InUeUwrV' }, { time: '25/01/2021, 15:27:10', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 286, id: '-MRsyS9Ez1_wIAxqMMIF' }, { time: '27/01/2021, 22:06:46', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 6349, id: '-MS3h5JurxnAWlLL8J4l'} ]; orders.sort((a,b) => { const formatDate = (date) => date.replace(/(..)\/(..)\/(....)(.*)/, '$3/$2/$1$4'); return formatDate(a.time).localeCompare(formatDate(b.time)); }); console.log(orders);
.as-console-wrapper { max-height: 100%;important: top; 0; }
使用像moment.js這樣的日期格式化程序來正確格式化日期使用moment js,我們可以盡可能地將日期與毫秒進行比較,並根據需要使用isBefore
和isAfter
方法進行格式化
fetchedOrders.sort( function(a,b) {
var timeA = moment(a.time, 'DD/MM/YYYY, HH:mm:ss');
var timeB = moment(b.time, 'DD/MM/YYYY, HH:mm:ss');
if(timeB.isAfter(timeA, 'minutes'))
return 1;
if( timeB.isBefore(timeA, 'minutes') )
return -1;
return 0;
});
完整代碼
var fetchedOrders = [ { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 3 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 } ], time: '26/01/2021, 10:42:17', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1253, id: '-MRx5pf06D6Jq-dha9L5' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 } ], time: '26/01/2021, 20:19:07', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9rMOBbWcCY-fFDd8' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 } ], time: '25/01/2021, 15:25:05', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 128, id: '-MRsxyfq3vWm1dFZl_oW' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 } ], time: '26/01/2021, 20:19:09', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 970, id: '-MRz9ragOIxJXilPF3MB' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKF-drZP73W4DfO72bl', oldPrice: '375', productName: ' Aashirvaad Shudh Chakki Whole Wheat Atta', unitPrice: '331', units: 1 }, { id: '-MKLt0meR1fvFF4ZgNY2', oldPrice: '417', productName: 'Tata Premium Tea (Pouch)', unitPrice: '371', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLuAm-emA5UzIhXpAD', oldPrice: '162', productName: 'Ghadi Detergent Powder', unitPrice: '147', units: 1 }, { id: '-MKLwhRgudFHBbPR18lW', oldPrice: '800', productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer', unitPrice: '720', units: 1 }, { id: '-MKLyeF47-VAn9Q6nJCf', oldPrice: '134', productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar', unitPrice: '113', units: 1 } ], time: '24/01/2021, 12:16:30', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2679, id: '-MRn8D25UUj5rRfAJ5EN' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 2 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLubjoPaBv3lUIeEb6', oldPrice: '1050', productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer', unitPrice: '899', units: 2 } ], time: '23/02/2021, 12:44:06', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 2923, id: '-MUCjE5dAurxRu9Ac6EB' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '8901138509231', oldPrice: '250', productName: 'Aashirvaad Atta', unitPrice: '200', units: 1 } ], time: '25/01/2021, 15:25:37', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 200, id: '-MRsy5ZvNiIai7U-O5Rj' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKLwhRgudFHBbPR18lW', oldPrice: '800', productName: 'Surf Excel Matic Front Load Detergent Powder (Carton) - Free 1 kg - Brand Offer', unitPrice: '720', units: 2 }, { id: '-MKLyeF47-VAn9Q6nJCf', oldPrice: '134', productName: 'Exo Bacterial Ginger Twist Round Touch & Shine Dishwash Bar', unitPrice: '113', units: 2 }, { id: '-MKLzSzyLKiALq4f6RTS', oldPrice: '155', productName: 'Vim Lemon Dishwash Gel (Bottle)', unitPrice: '143', units: 2 } ], time: '24/01/2021, 11:44:40', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1952, id: '-MRn0w2Srovbr3-0vh9j' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 2 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 1 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 } ], time: '26/01/2021, 11:09:12', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 1125, id: '-MRxC-8BgmG2InUeUwrV' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKLzSzyLKiALq4f6RTS', oldPrice: '155', productName: 'Vim Lemon Dishwash Gel (Bottle)', unitPrice: '143', units: 2 } ], time: '25/01/2021, 15:27:10', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 286, id: '-MRsyS9Ez1_wIAxqMMIF' }, { addressDetails: { addressLine1: 'Dhruba\'s Home', addressLine2: 'Dhauliguri', city: 'Kokrajhar', email: 'dhruba@mac.com', landmark: 'Chandrapara Gas Agency', phoneNo: '9876543210', pinCode: '783321' }, products: [ { id: '-MKBFRQbLhkV5yvtclpD', oldPrice: '186', productName: 'Fortune Premium Kachi Ghani Pure Mustard Oil', unitPrice: '128', units: 1 }, { id: '-MKBFdmYxUmkl0snpb-o', oldPrice: '220', productName: 'Saffola Low Cholestrol Mustard Oil (Bottle)', unitPrice: '140', units: 3 }, { id: '-MKLtgt8Q1t7lSSLqYsH', oldPrice: '840', productName: 'Tide Extra Power Jasmine & Rose Detergent Powder - Brand Offer', unitPrice: '729', units: 1 }, { id: '-MKLubjoPaBv3lUIeEb6', oldPrice: '1050', productName: 'Ariel Matic Top Load Detergent Powder - Buy 4 kg Get 2 kg Free - Brand Offer', unitPrice: '899', units: 4 }, { id: '-MKLw4cxIo5TUgrVkgmq', oldPrice: '420', productName: 'Tide Ultra 3 in 1 Clean Detergent Powder - Get 1 kg Free', unitPrice: '369', units: 4 } ], time: '27/01/2021, 22:06:46', userId: 'fWXFsnaK8vcHUX4QFVHaBePWvFr2', amount: 6349, id: '-MS3h5JurxnAWlLL8J4l' } ] fetchedOrders.sort( function(a,b) { var timeA = moment(a.time, 'DD/MM/YYYY, HH:mm:ss'); var timeB = moment(b.time, 'DD/MM/YYYY, HH:mm:ss'); if(timeB.isAfter(timeA, 'minutes')) return 1; if( timeB.isBefore(timeA, 'minutes') ) return -1; return 0; }); console.log(fetchedOrders)
<script src="https://momentjs.com/downloads/moment.min.js"></script>
var array = [{
"EmployeeName": "abc",
"Experience": "1",
"Technology": "java"
}, {
"EmployeeName": "cde",
"Experience": "9",
"Technology": "ASP.NET"
}, {
"EmployeeName": "mba",
"Experience": "2",
"Technology": "JAVA"
}, {
"EmployeeName": "ne",
"Experience": "7",
"Technology": "Sql Server"
}, {
"EmployeeName": "car",
"Experience": "6",
"Technology": "C#"
}];
//Comparer Function
function GetSortOrder(prop) {
return function(a, b) {
if (a[prop] > b[prop]) {
return 1;
} else if (a[prop] < b[prop]) {
return -1;
}
return 0;
}
}
array.sort(GetSortOrder("EmployeeName")); //Pass the attribute to be sorted on
document.write("Sorted Employee Names : ");
for (var item in array) {
document.write("<br>" + array[item].EmployeeName);
}
array.sort(GetSortOrder("Technology")); //Pass the attribute to be sorted on
document.write("<br><br> Sorted Technology Names : ");
for (var item in array) {
document.write("<br>" + array[item].Technology);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.