Javascript Object.fromEntries的替代项?
我收到一个Javascript Object.fromEntries的替代项?,javascript,typescript,object,Javascript,Typescript,Object,我收到一个对象,如下所示: this.data = { O: { id: 0, name: value1, organization: organization1, ..., }, 1: { id: 1, name: value1, organization: organization1, ..., }, 2: {
对象
,如下所示:
this.data = {
O: {
id: 0,
name: value1,
organization: organization1,
...,
},
1: {
id: 1,
name: value1,
organization: organization1,
...,
},
2: {
id: 2,
name: value2,
organization: organization2,
...,
},
...
}
然后,我按id
进行筛选,并删除对象,该对象id
与我从商店收到的id
匹配,如下所示:
filterOutDeleted(ids: any[], data: object,) {
const remainingItems = Object.fromEntries(Object.entries(data)
.filter(([, item]) => !ids.some(id => id === item.id)));
const rows = Object.keys(remainingItems).map((item) => remainingItems[item]);
return rows;
}
不幸的是,我在生成声明类型“ObjectConstructor”上不存在属性“fromEntries”时出错,此时我无法在tsconfig
文件中进行更改。对于这种情况,fromEntries
是否有替代方案?非常感谢您的帮助 改为在外部创建对象,对于通过测试的每个条目,手动将其分配给对象
还请注意,您可以通过提前构造一组id
来降低计算复杂度:
const filterOutDeleted = (ids: any[], data: object) => {
const idsSet = new Set(ids);
const newObj = {};
for (const [key, val] of Object.entries(data)) {
if (!idsSet.has(val.id)) {
newObj[key] = val;
}
}
return newObj;
};