过滤嵌套对象

suu*_*iam 7 javascript object filter

我收到一个看起来像这样的对象:

 this.tokensData = {
    O: {
        id: 0,
        name: value1,
        organization: organization1,
        ...,
       },
    1: {
        id: 1,
        name: value1,
        organization: organization1,
        ...,
        },
    2: {
        id: 2,
        name: value2,
        organization: organization2,
        ...,
        },
    ...
   }
Run Code Online (Sandbox Code Playgroud)

我想要筛选id和删除Objectid匹配的id我从接收store。到目前为止我尝试过的:

const filteredObject = Object.keys(this.tokensData).map((token) => {
  if (this.$store.state.id !== this.tokensData[token].id) {
    return this.tokensData[token];
  }
});
Run Code Online (Sandbox Code Playgroud)

这取代了Objectwith undefined- 这对我有用,但显然不理想。任何帮助深表感谢!

Ste*_*pUp 5

尝试使用Object.entries然后Object.fromEntries()从键值对列表中创建一个对象:

let store = [0 , 1];

const result = Object.entries(tokensData).filter(([k, v]) => !store.some(s => s == v.id));

console.log(Object.fromEntries(result));
Run Code Online (Sandbox Code Playgroud)

一个例子:

let store = [0 , 1];

const result = Object.entries(tokensData).filter(([k, v]) => !store.some(s => s == v.id));

console.log(Object.fromEntries(result));
Run Code Online (Sandbox Code Playgroud)