【问题标题】:How to Filter out array of object using the key如何使用键过滤出对象数组
【发布时间】:2021-05-04 19:38:58
【问题描述】:

我有一个这样的数组

let a = [{'contract_1': "test 1"},
{'contract_2': "lease 1"}]

我想过滤掉它并完全删除具有键“contract_1”的对象。

压轴结果应该是

let a = [{'contract_1': "test 1"}];

我已经尝试过这样抓住钥匙了。

a.filter(item => {return item['contract_1'] !== 'contract_1'})

【问题讨论】:

  • 所有对象都只有一个属性吗?
  • StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • const results = a.filter((data) => !data["contract_1"]);查看developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • @Barmar 我已经尝试了几个选项。但没有得到我想要的确切输出所以我想通过添加这里来获得建议。希望没有错。 :) 是的,所有的对象都是这样的,我遇到的问题是当键像这样变化时,用键过滤它
  • @AliKlein 现在我明白了。谢谢你..

标签: javascript arrays filter


【解决方案1】:

您可以使用hasOwnProperty() 方法来测试对象中是否存在键。

let a = [{
    'contract_1': "test 1"
  },
  {
    'contract_2': "lease 1"
  }
];

a = a.filter(el => !el.hasOwnProperty('contract_1'));

console.log(a);

【讨论】:

  • 谢谢..我会试试这个
【解决方案2】:

let a = [{
    'contract_1': "test 1"
  },
  {
    'contract_2': "lease 1"
  }
];

a = a.filter(el => {
  const [key] = Object.keys(el);

  return key !== 'contract_2';
});

console.log(a);

请看这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

【讨论】:

  • 明白了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
相关资源
最近更新 更多