我们有对象阵列重新映射
var items = [
{ id: 1, order_assigned: 2},
{ id: 2, order_assigned: 4},
{ id: 3, order_assigned: 1},
{ id: 4, order_assigned: 5},
{ id: 5, order_assigned: 3}
];
每个具有ID和一些订单编号的数组。 例如,用户在ID 2修改订单号为0阵列会是这个样子的:
var items = [
{ id: 1, order_assigned: 2},
{ id: 2, order_assigned: 0},
{ id: 3, order_assigned: 1},
{ id: 4, order_assigned: 5},
{ id: 5, order_assigned: 3}
];
现在,我们需要以填补order_assigned为了差距重新索引order_assigned。 即阵列应该是这样的
var items = [
{ id: 1, order_assigned: 2},
{ id: 2, order_assigned: 0},
{ id: 3, order_assigned: 1},
{ id: 4, order_assigned: 4},
{ id: 5, order_assigned: 3}
];
ID为4的变化项目顺序分配的号码从5到4,COS存在与4顺序分配数没有项目。
order_assigned中的编号应该从1到最后建立的等级。 1,2,3,4。如果有人输入1,2,5,7以进行order_assigned,则必须将其转换为1,2,3,4。 换句话说,如果订单号码存在差距,则必须重新计算它之后的所有数字。不需要诉诸物品订单本身。
完全卡住了如何做到这一点正确的方式。请帮忙!
也许我错过了一些东西,但你用什么逻辑来确定新的'order_assigned'? – larz
“order_assigned order”中的空白是什么意思?期望的输出如何排序(它仍然是由id上升)? – chazsolo
你有重新编号的规则吗? –