2 回答
TA贡献1770条经验 获得超3个赞
使用forEach循环并使用 unqiue 键构建任何对象。Object.values从构建的对象中获取。
const data = [
{ img1: ["/path/to/img1"], img2: ["/path/to/img2"] },
{ img1: ["/path/to/img1"], img2: ["/path/to/img3"] },
{ img1: ["/path/to/img1"], img2: ["/path/to/img4"] },
{ img1: ["/path/to/img12"], img2: ["/path/to/img5"] },
{ img1: ["/path/to/img12"], img2: ["/path/to/img46"] },
{ img1: ["/path/to/img12"], img2: ["/path/to/img45"] },
{ img1: ["/path/to/img12"], img2: ["/path/to/img478"] }
];
const update = data => {
const res = {};
data.forEach(item => {
const u_key = item.img1[0];
if (!(u_key in res)) {
res[u_key] = item;
}
});
return Object.values(res);
};
console.log(update(data));
TA贡献1783条经验 获得超4个赞
function filterArrayByImg1(arr) {
let x = [];
return arr.filter((e, a) => {
if (!e.img1 || !e.img1[0] || x.includes(e.img1[0]))
return false;
else {
x.push(e.img1[0]);
return true;
}
})
.map(e => ({
img1: e.img1[0],
img2: e.img2[0]
}));
}
let inputArray = [{
img1: ['/path/to/img1'],
img2: ['/path/to/img2']
},
{
img1: ['/path/to/img1'],
img2: ['/path/to/img3']
},
{
img1: ['/path/to/img1'],
img2: ['/path/to/img4']
},
{
img1: ['/path/to/img12'],
img2: ['/path/to/img5']
},
{
img1: ['/path/to/img12'],
img2: ['/path/to/img46']
},
{
img1: ['/path/to/img12'],
img2: ['/path/to/img45']
},
{
img1: ['/path/to/img12'],
img2: ['/path/to/img478']
}
];
//filter the array
let filteredArr = filterArrayByImg1(inputArray);
console.log(filteredArr);
添加回答
举报