我有一个Vue.js
网络应用程序,该应用程序使用来自express.js
API的数据并在表中显示响应数组。数组的每个对象都有由组成的唯一ID Name_Version
(例如P.90.001000-0004_2
)。问题是我只需要显示每个版本的最新版本。例如,如果API响应为:
[{id: P.90.001000-0004_1}, {id: P.90.001000-0004_2}, {id: P.90.001000-0004_3}, {id: P.90.002222-0025_1}, {id: P.90.002222-0025_2}]
表中显示的结果数组为:
[{id: P.90.001000-0004_3}, {id: P.90.002222-0025_2}]
对我来说,要达到这个结果是不可能的,有人可以帮助我吗?
您可以构建一个将ID的一部分(不包括版本)映射到整个对象的对象,并且可以在此映射中仅保留每个项目的最新版本:
const data = [{id: 'P.90.001000-0004_1'}, {id: 'P.90.001000-0004_2'}, {id: 'P.90.001000-0004_3'}, {id: 'P.90.002222-0025_1'}, {id: 'P.90.002222-0025_2'}];
const map = {};
data.forEach((item) => {
const [id, version] = item.id.split('_');
const latestItem = map[id];
if (!latestItem || latestItem.id.split('_')[1] < version) {
map[id] = item;
}
});
const filteredData = Object.values(map);
console.log(filteredData);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句