为了账号安全,请及时绑定邮箱和手机立即绑定

如何过滤 2 个不同的属性?

如何过滤 2 个不同的属性?

冉冉说 2021-07-06 09:27:40
我试图在将对象数组发送到后端之前对其进行过滤。它应该以没有虚假值的方式进入后端。如果我这样做,它会起作用:theArray.filter(({ name }) => name)但我需要再添加一个属性:theArray.filter(({ name, percentage }) => { return { percentage, name } }),如果我像上面那样做,它不起作用,我错过了什么?
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

您的过滤器函数应返回一个布尔值,以确定是否保留数组元素:

theArray.filter(({name, percentage}) => {return name && percentage});

要不就

theArray.filter(({name, percentage}) => name && percentage);


查看完整回答
反对 回复 2021-07-08
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以采用这些值并使用逻辑 AND&&(无值)

theArray.filter(({ name, percentage }) => name && percentage)

逻辑或||(一个或两个值都是值)。

theArray.filter(({ name, percentage }) => name || percentage)


查看完整回答
反对 回复 2021-07-08
?
隔江千里

TA贡献1906条经验 获得超10个赞

因此,您目前正在做的是从数组中的每个对象中提取 name 属性,然后对其进行“真实”测试。

对于一个字符串(大概类似名称),这意味着undefinednull和空字符串将等同为false。

对于一个数字(大概是百分比),这意味着undefinednull并且0将等同于 false。

在这种情况下,您可以使用以下内容(牢记上述注意事项):

theArray.filter(({ name, percentage }) => percentage && name)


查看完整回答
反对 回复 2021-07-08
  • 3 回答
  • 0 关注
  • 218 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信