ecmascript-6 - 如何为特定对象键编写过滤条件?
问题描述
我有一个对象:
const list = {
apples: '2',
grapes: '1',
almonds: 'allergic',
bags: '',
}
我想要的是如果list.bags === ''
将它从对象中排除,那么最终结果将是:
const list = {
apples: '2',
grapes: '1',
almonds: 'allergic',
}
我尝试过滤掉它,但它总是删除bags
const newList = Object.fromEntries(Object.entries(list).filter(
([key, v]) => key !== 'bags' && v !== '',
),
);
我怎样才能写出这种类型的条件filter
?
解决方案
如果您只想删除单个属性,我会使用Object.assign
(或传播属性)来克隆对象,并delete
在必要时仅克隆该属性:
const newList = {...list};
if (newList.bags === '') {
delete newList.bags;
}
推荐阅读
- java - 在 JavaFX 中为不同的场景重用相同的按钮
- azure - 从 Powershell 获取实际 Azure Function 端点列表
- java - 如何检查字符串是否在 ANTLR 上下文中匹配?
- javascript - 从 Chrome 书签更改文本输入
- ms-access - 将受密码保护的 excel 文件导入 MS Access
- reactjs - 如何在 React 中更新地理位置状态?
- mongodb - 引用另一个集合可能会导致大量查询
- apache-spark - 如何将所有行作为 JSON 数组的流式 DataFrame 写入 Kafka?
- jenkins - 当作业推送到 github 并触发 webhook 时,防止无限循环构建
- reactjs - 在 Fetch 中反应重定向