Ecmascript 6 如何为特定对象键编写筛选条件?

Ecmascript 6 如何为特定对象键编写筛选条件?,ecmascript-6,Ecmascript 6,我有一个目标: const list = { apples: '2', grapes: '1', almonds: 'allergic', bags: '', } 我想要的是,如果list.bags===''将其从对象中排除,那么最终结果将是: const list = { apples: '2', grapes: '1', almonds: 'allergic', } 我试着过滤掉它,但它总是删除包 const newList = Object.fromEnt

我有一个目标:

const list = {
  apples: '2',
  grapes: '1',
  almonds: 'allergic',
  bags: '',
}
我想要的是,如果
list.bags===''
将其从对象中排除,那么最终结果将是:

const list = {
  apples: '2',
  grapes: '1',
  almonds: 'allergic',
} 
我试着过滤掉它,但它总是删除

const newList = Object.fromEntries(Object.entries(list).filter(
            ([key, v]) => key !== 'bags' && v !== '',
        ),
);

如何为
过滤器
编写这种类型的条件?

如果您只想删除单个属性,我会使用
对象。分配
(或扩展属性)克隆对象,并在必要时删除该属性:

const newList = {...list};
if (newList.bags === '') {
  delete newList.bags;
}

是否需要克隆对象?如果没有,您可以使用
删除列表.bags
。修复方法就是
键!='袋子“| | v!==”但是我会选择@FelixKling,并且说如果(list.bags==“”)删除list.bags,
会更容易
@Felix Kling我需要一个不带包的
新列表
对象和带所有键的原始
列表