我有一个像json这样响应的API:
{'items':[
{'id': 1, 'quantity': 3},
{'id': 4, 'quantity': 7},
{'id': 5, 'quantity': 1}
]}
我已经在页面上做到了,它每15秒获取一次此API,但是存在一个问题,每次它在数组中具有不同的顺序(如果在id = 1的示例项中放在首位,则可能是最后一次)。因此,页面上的块也更改了它们的顺序。我试图像这样对付它:
for (var i in response.items) {
let current_item = response.items[i];
for (var i2 in original_items.items) {
if (original_items.items[i2].id === current_item.id) {
original_items.items[i2] = current_item;
}
}
}
但是这种方式行不通。按ID对它们进行排序也不是可行的选择
答案 0 :(得分:2)
按ID排序应该是可行的。每当响应返回时(包括对初始请求的响应),请对对象数组进行排序:
response.items.sort((a, b) => a.id - b.id);