vue 数组对比调整顺序
如何根据 arr1 中 uid 字段对 arr2 中的对象进行重新排序,使 arr2 中的对象与 arr1 中对象的 uid 保持一致?
问题示例:
已有 arr1 和 arr2 两组数据:
let arr1 = [
{
uid: 1638867875084,
},
{
uid: 1638867869536,
},
{
uid: 1638867872121,
},
{
uid: 1638867882077,
},
];
let arr2 = [
{ uid: 1638867869536, name: 'orange.png' },
{ uid: 1638867872121, name: 'pro_map.gif' },
{ uid: 1638867875084, name: 'avatar-3.png' },
{ uid: 1638867882077, name: 'qcode.jpg' },
];期望结果:
立即学习“前端免费学习笔记(深入)”;
let arr2 = [
{ uid: 1638867875084, name: 'avatar-3.png' },
{ uid: 1638867869536, name: 'orange.png' },
{ uid: 1638867872121, name: 'pro_map.gif' },
{ uid: 1638867882077, name: 'qcode.jpg' },
];解决方案:
arr1.map(item => arr2.find(item2 => item.uid === item2.uid)).filter(Boolean)
此代码片段通过 map 函数遍历 arr1,并为每个 arr1 中的对象寻找 arr2 中 uid 相等的对应对象。找到后,将对应对象放到一个新的数组中。最后,利用 filter(Boolean) 去除 null 值,得到符合要求的重新排序后的 arr2。










