这是一组书籍对象。const books=[ { "id": 1, "title": "NPR", "url": "https://www.npr.org" }, { "id": 2, "title": "Google Docs", "url": "https://docs.google.com/" }, { "title": "Fetch API Docs", "url": "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch", "id": 3 }, { "title": "Yahoo", "url": "http://www.yahoo.com", "id": 4 }, { "title": "Google", "url": "http://www.google.com", "id": 5 } ]和一个单独的 ID 数组const selectedIds = [1, 5, 3]使用 javascript,如何将书籍数组过滤为selectedIds(保持与 in 相同的顺序selectedIds)?我希望得到的最终结果:selectedBooks = [ { "id": 1, "title": "NPR", "url": "https://www.npr.org" }, { "title": "Google", "url": "http://www.google.com", "id": 5 }, { "title": "Fetch API Docs", "url": "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch", "id": 3 } ]我当前的代码是这样的,但这保留了books数组的顺序(即 [1, 3, 5]):books.filter(function(item) { return selectedIds.includes(item.id);}
2 回答

慕妹3242003
TA贡献1824条经验 获得超6个赞
const books = [{
id: 1,
title: "NPR",
url: "https://www.npr.org"
},
{
id: 2,
title: "Google Docs",
url: "https://docs.google.com/"
},
{
title: "Fetch API Docs",
url: "https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch",
id: 3
},
{
title: "Yahoo",
url: "http://www.yahoo.com",
id: 4
},
{
title: "Google",
url: "http://www.google.com",
id: 5
}
];
const selectedIds = [1, 5, 3];
const mapped = selectedIds.map(id => {
return books.find(book => book.id === id);
});
console.log(mapped);
添加回答
举报
0/150
提交
取消