在Javascript中,我有一个帖子的数据集(JSON)。每个帖子都有一个post_id
。我有一个post_id
数组,我想用它从主数据集中提取某些帖子。
const dataset = [
{post_id: 1, title: 'First Post'},
{post_id: 2, title: 'Second Post'},
{post_id: 3, title: 'Third Post'},
];
然后我有的数组我希望得到的帖子:
const posts_to_get = [0,3];
如何解析数据集以提取id = 0
和id = 3
的位置?
我的数组可能包含许多ID,因此我猜我需要迭代它。在那里思考我可以做的一堆循环,但它感觉不对。
注意:我正在做一个'模拟后端'对于目前的前端应用程序。从长远来看,我当然会更好/更有效地获取帖子。但目前我已经有了这个JSON数据集。
谢谢!
答案 0 :(得分:2)
这样的东西?
const dataset = [
{post_id: 1, title: 'First Post'},
{post_id: 2, title: 'Second Post'},
{post_id: 3, title: 'Third Post'},
];
const posts_to_get = [1,3];
var result = dataset.filter(p=>posts_to_get.includes(p.post_id))
console.log(result)
答案 1 :(得分:0)
如果您有一个大型数据集,那么在尝试阅读之前将数组转换为对象可能是值得的。
const m = dataset.reduce((obj, cur) => {
obj[cur.post_id] = cur;
return obj;
}, {});
查找将是恒定时间(尽管您必须将要查找的post_id转换为字符串:
const ids_to_find = [1, 3];
console.log(ids_to_find.map(i => m[i.toString()]));