我有一个动态调整大小的数组,它根据最后选择的数组位置 0 的内容来更改其顺序。问题是我想保留数组的原始顺序。
为此,我创建了一个附加变量,该变量设置为数组的原始排序。尽管在选择项目后数组的某些值可能会发生变化,但 name 属性永远不会改变。我想利用这个事实将新数组排序到原始位置。
let keepRateOrder = rates.sort((a, b) => {
return prevRates.indexOf(a.name) - prevRates.indexOf(b.name);
});
const rates = [
{name:'UPS', isChoosen:true, cost:63 ...},
{name:'Mail', isChoosen:false, cost:23 ...},
{name:'FedEx', isChoosen:false, cost:33 ...}
]
const prevRates = [
{name:'Mail', isChoosen:false, cost:23 ...},
{name:'UPS', isChoosen:true, cost:63 ...},
{name:'FedEx', isChoosen:false, cost:33 ...}
]
Run Code Online (Sandbox Code Playgroud)