已知: 又一个id列表idList,和一个对象列表objectList。idList 中的每一个元素都对应objectList中的一个元素的id属性。
目标: 将objectList 中的元素按照idList中元素对应的顺序进行重新排序
普通方法
> 进行二重循环,顺序寻找每个idList在objectList中的对应元素,存入新数组中。
代码如下:
var resList = [];
idList.forEach(item => {
objectList.forEach(data => {
if (item = data.id) {
resList.push(data);
}
})
})
return resList;
优化方法
> 进行单次循环即可,循环objectList中元素id属性在idList中的索引,将idList中对应位置的id替换为objectList中的元素,循环结束后idList中的数据即为目标数据。
代码如下:
var resList = idList;
objectList.forEach(item => {
var _index = idList.indexOf(item.id);
resList[_index] = item;
})
return resList;