Angular中对象数据过滤问题:筛选is_family_member为false的数据返回空值的解决方案
问题分析与解决方案
你遇到的问题根源是类型不匹配:从后端返回的JSON里,is_family_member是布尔类型(true/false),但你的筛选代码里却用了字符串'false'去做全等比较(===),布尔值和字符串永远不会相等,所以筛选结果为空。
正确的筛选写法
你可以用以下两种方式之一来正确筛选出is_family_member为false的数据:
- 直接比较布尔值
false:
this.personmembertrue = this.persons.filter(x => x.is_family_member === false);
- 利用逻辑非运算符(更简洁):
this.personmembertrue = this.persons.filter(x => !x.is_family_member);
额外提示
如果担心后端返回的数据可能存在类型不一致(比如偶尔返回字符串形式的"true"/"false"),可以做一个兼容处理:
this.personmembertrue = this.persons.filter(x => String(x.is_family_member).toLowerCase() === 'false' );
不过从你提供的JSON结构来看,后端返回的是标准布尔值,所以第一种或第二种写法就足够了。
内容的提问来源于stack exchange,提问作者A. B
相关产品推荐
相关产品推荐

