首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Typescript数组对象过滤器

Typescript数组对象过滤器
EN

Stack Overflow用户
提问于 2018-08-22 14:23:38
回答 2查看 1.7K关注 0票数 0

我正在尝试过滤一个角度为5的数组对象,这是我的对象

代码语言:javascript
运行
AI代码解释
复制
{
    "id_record": 2,
    "groupName": "PD",
    "count": 15,
    "userList": [{
            "name": "jeffhua",
            "nEmail": "jeffhua@abc.com"
        },
        {
            "name": "joey",
            "nEmail": "joey@abc.com"
        },
        {
            "name": "angelagosto",
            "nEmail": "angelagosto@abc.com"
        }
    ]
}

下面是我的过滤器代码

代码语言:javascript
运行
AI代码解释
复制
return items.filter(it => {
  return it.userList.filter(dit => {
    return dit.name.toLowerCase().includes(filterText)
  });
});

会出什么问题呢?

EN

回答 2

Stack Overflow用户

发布于 2018-08-22 14:29:06

在过滤器代码中,第二个过滤器返回一个数组:

代码语言:javascript
运行
AI代码解释
复制
return it.userList.filter(dit => {
    return dit.name.toLowerCase().includes(filterText)
  });
// returns array

filter方法等待返回一个布尔值。尝试以下操作:

代码语言:javascript
运行
AI代码解释
复制
return items.filter(it => {
  return it.userList.filter(dit => {
    return dit.name.toLowerCase().includes(filterText);
  }).length !== 0;
});

在我的代码片段中,我检查内部过滤器结果(一个数组)是否为空。如果不是,则返回true给父过滤器,它会将当前对象保留在结果数组中。

明细(编辑)

下面返回一个布尔值,检查其中一个用户的小写名称是否包含filterText。

代码语言:javascript
运行
AI代码解释
复制
return dit.name.toLowerCase().includes(filterText);

然后,此块返回一个数组,其中包含在前面解释的条件下返回true的所有值:

代码语言:javascript
运行
AI代码解释
复制
return it.userList.filter(dit => {
    return dit.name.toLowerCase().includes(filterText);
})

但是,为了让代码片段的父部分过滤数组,它需要一个布尔值作为返回值:

代码语言:javascript
运行
AI代码解释
复制
return items.filter(it => {
  return // expect boolean
});

然后,下面是末尾的.length !== 0

代码语言:javascript
运行
AI代码解释
复制
it.userList.filter(dit => {
    return dit.name.toLowerCase().includes(filterText);
})

使它成为一个布尔值,它应该反映你想要的条件。

全文(和评论):

代码语言:javascript
运行
AI代码解释
复制
// filter returns an array filtered by the method
return items.filter(it => {
  // awaits a boolean return value, with filter returning an array.
  return it.userList.filter(dit => {
    // filter awaits a boolean as return value AND returns a boolean --> ok for filter
    return dit.name.toLowerCase().includes(filterText);
  }).length !== 0; // filter has returned an array, we cast it to boolean while checking if its length is greater than 0.
});
票数 1
EN

Stack Overflow用户

发布于 2018-08-22 15:07:16

使用some而不是内部filter

代码语言:javascript
运行
AI代码解释
复制
  return items.filter(it => {
      return it.userList.some(dit => {
        return dit.name.toLowerCase().includes(filterText)
      });
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51969042

复制
相关文章
SVN 由于目标计算机积极拒绝,无法连接
为什么会出现这种错误呢,因为我们犯了一个很小的错误,因为以前服务器上的SVN是开机启动的,但是不知道为什么这次服务器重启之后SVN没有起来,所以就需要我们手动启动了。
kirin
2020/08/31
2.5K0
Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接
redis-server --service-install redis.windows.conf
一写代码就开心
2021/06/29
1.7K0
sshd 拒绝连接错误 refused connected from
记住,每次修改配置文件后,都需要重启 SSHD 服务来应用新的配置。你可以使用 systemctl restart sshd 来重启服务。
宋天伦
2023/10/21
2.1K0
解决pip install出现“由于目标计算机积极拒绝,无法连接”的问题
本文记录执行 pip install 时出现的“由于目标计算机积极拒绝,无法连接”错误解决方案。 问题原因 代理各种坑 解决方案 去掉代理服务器相关设置 控制面板 -> Internet选项 -> 连接 -> 局域网设置 去掉所有勾勾 参考资料 https://blog.csdn.net/muguangzhichen/article/details/80945683
为为为什么
2022/08/06
4.1K0
MySQL连接错误
ERROR 1045 (28000): Access denied for user’root’@’localhost’(using password:YES)
一点儿也不潇洒
2018/08/07
3.6K0
MySQL连接错误
[325]pycharm中执行python报错:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝无法连接
服务端要先启动,然后再启动客户端。不要在ide里同时执行服务端和客户端,如果你在同一个IDEL里开服务和客户端就会出那个问题,因为开一个就要把另一个停了。最好打开两个cmd窗口,以此执行服务端和客户端。
周小董
2022/04/12
3.2K0
[325]pycharm中执行python报错:ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝无法连接
Navicat无法连接mysql
原因:由于用户加密方式不同,如果是采用caching_sha2_password会由于navicat的版本问题导致无法连接,需要设置成mysql_native_password
风起--追风
2022/09/17
7.7K0
Navicat无法连接mysql
winscp、xshell连接不上,网络错误连接xx被拒绝
~/.ssh文件夹下,直接暴力删除known_hosts文件,或打开文件删除对应ip连接保存的秘钥。
全栈程序员站长
2022/09/30
11.8K0
winscp、xshell连接不上,网络错误连接xx被拒绝
【平坑攻略】Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接
输入命令redis-server.exe redis.windows.conf后,不要关闭,不要关闭 重新打开cmd窗口输入redis-cli.exe-h 127.0.0.1
全栈程序员站长
2022/08/15
3K0
【平坑攻略】Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接
Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝无法连接解决方案
出现这个情况是你没有见Redis的服务打开,重新双击打启动服务,之后再次打开客户端即可正常运行。
萌萌哒的瓤瓤
2020/08/26
6.5K0
Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝无法连接解决方案
phpmyadmin连接MySQL服务器被拒绝
phpMyAdmin 尝试连接到MySQL服务器,但服务器拒绝连接。您应该检查配置文件中的主机、用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致。
于果
2021/08/25
11.2K0
Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
发布于 2018-08-13 09:21 更新于 2018-09-01 00:14
walterlv
2018/09/18
12.5K0
Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的
MYSQL vs JAVA 连接错误
最近开发告诉我,他们在测试系统的时候,会经常有连接MYSQL的连接被踢掉。具体给我的解释是,JAVA的缓冲池连接MYSQL 保持连接,但再次使用的时候,报连接错误。
AustinDatabases
2019/07/12
4K0
MYSQL  vs JAVA 连接错误
Python 用smtplib库发邮件报错:[WinError 10061] 由于目标计算机积极拒绝,无法连接。解决办法
看了菜鸟的教程,有这段代码: mail = smtplib.SMTP("localhost") 然后就报错了。菜鸟的教程太老了,Python迭代这么快,根本跟不上。
小蓝枣
2020/09/23
2.5K0
mysql连接失败HikariPool错误
1. mysql连接失败HikariPool错误 1.1. 异常 com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. 1.2. 解决 引起程序无法启动的问题是 com.zaxxer.hikari.pool.HikariPool 没能成功被 Spring 创建,原因是你的时区配置的有歧义,你需要在 jdbc url 后加上 &serverTimezone=Asia/Shanghai 这
老梁
2019/09/10
10.1K0
【错误记录】无法打开 “xxx“ , 因为 Apple 无法检查其是否包含恶意软件
选择 " 通用 " 选项卡 , 在下面找到被拦截的软件 , 选择 " 仍要打开 " ;
韩曙亮
2023/03/29
1.1K0
【错误记录】无法打开 “xxx“ , 因为 Apple 无法检查其是否包含恶意软件
无法读取配置接”system.web.extensions”,因为它缺少节声明
所以,点到你的网站,点右边的基本设置,然后在弹出来的对黄狂中,点选择,选择应用程序池位.net 4.0 classical就OK了。一般就好了。还没有,你可以继续搜索,我记得csdn上面有一个家伙也是这样弄了不好,他继续弄,反正我是弄了就OK了的。
用户2353021
2020/05/12
1.1K0
详细到你无法拒绝
一提到Redis,相信大家都不会感到陌生吧。今天就让我们在阿里云上安装一下Redis,为以后使用它做个准备。
阿Q说代码
2021/05/13
3590
【前端面试题】我靠它拿到了大厂Offer
instanceof 的内部机制是通过判断对象的原型链中是不是能找到类型的 prototype。
前端修罗场
2023/10/07
1.1K0
【前端面试题】我靠它拿到了大厂Offer
mysql远程连接错误。1044 解决
mysql> GRANT ALL PRIVILEGES ON *.* TO root@’ip’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
kirin
2020/09/07
4.6K0

相似问题

从Outlook获取电子邮件地址

10

从AIR传递到javascript

20

VBA Outlook从电子邮件中获取“回复到”电子邮件地址

18

将登录信息从PHP传递到AIR

11

将参数从java活动传递到Adobe AIR应用程序

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文