我有一个名为“sort_based_on_this_order附件”的json数组,在这里我需要基于数组进行排序。
var sort_based_on_this_order = ['1666432801510', '1666434048280', '1666433926644', '1666434169913', '1666433101760', '1666434194815', '1666432849037', '1666432764144', '1666432044571', '1666432742444']sort_based_on_this_order数组包含附件json数组的文件名键值。
var attachments = [
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978911/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666433926644.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978911
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978910/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434169913.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978910
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978909/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434048280.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978909
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978907/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666433101760.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978907
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978905/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434194815.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978905
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978904/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432849037.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978904
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978903/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432801510.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978903
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978902/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432764144.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978902
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978901/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432044571.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978901
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978900/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432742444.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978900
}
]我试过了
attachments.sort.forEach(zz => {
return zz["filename"].match(/\b[0-9]{13}(?=\.[^.]+$)/)
})发布于 2022-10-25 11:42:56
您可以使用以下代码对其进行排序
attachments.sort((a,b) =>{
let k1 = a.filename.match(/\b[0-9]{13}(?=\.[^.]+$)/)
let k2 = b.filename.match(/\b[0-9]{13}(?=\.[^.]+$)/)
let i1 = sort_based_on_this_order.indexOf(k1[0])
let i2 = sort_based_on_this_order.indexOf(k2[0])
return i1 > i2 ? 1:-1
})
var attachments = [
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978911/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666433926644.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978911
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978910/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434169913.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978910
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978909/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434048280.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978909
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978907/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666433101760.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978907
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978905/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666434194815.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978905
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978904/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432849037.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978904
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978903/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432801510.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978903
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978902/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432764144.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978902
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978901/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432044571.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978901
},
{
"download_small_url": "https://kf.kobotoolbox.org/api/v2/assets/ajDWYWQoe9Gw6WAnK8H4fG/data/194338021/attachments/82978900/",
"mimetype": "image/jpeg",
"filename": "deploymentsmaster/attachments/a46854ceb37c4e55b4a2c5ea565c4ebf/04ac3197-7d0f-4301-bbaf-68daaee2b1a8/1666432742444.jpg",
"instance": 194338021,
"xform": 740320,
"id": 82978900
}
]
var sort_based_on_this_order = ['1666432801510', '1666434048280', '1666433926644', '1666434169913', '1666433101760', '1666434194815', '1666432849037', '1666432764144', '1666432044571', '1666432742444']
attachments.sort((a,b) =>{
let k1 = a.filename.match(/\b[0-9]{13}(?=\.[^.]+$)/)
let k2 = b.filename.match(/\b[0-9]{13}(?=\.[^.]+$)/)
let i1 = sort_based_on_this_order.indexOf(k1[0])
let i2 = sort_based_on_this_order.indexOf(k2[0])
return i1 > i2 ? 1:-1
})
console.log(attachments)
发布于 2022-10-25 11:39:17
如果我正确理解,您希望根据attachments数组对sort_based_on_this_order数组进行排序(但是,我没有看到两个数组中的值匹配,所以也许您尝试了其他我无法理解的东西?)
通过对排序中的其他数组使用indexOf,可以根据其他数组进行排序。
attachments.sort((a, b) => {
return sort_based_on_this_order.indexOf(a.fileName) - sort_based_on_this_order .indexOf(b.fileName);
});https://stackoverflow.com/questions/74193382
复制相似问题