Ionic3中移除Firebase返回数据内messages为undefined的项
过滤messages为undefined的聊天用户条目
很简单,你只需要在将用户对象推入clientsShortList之前,增加一个判断条件,检查messages属性是否不为undefined即可。修改后的代码如下:
getUsersChat() { let clientsKeys: Array<any>; let i = 0; console.log('obtain clients'); this.mySegService.getClients().take(1).subscribe(res => { clientsKeys = Object.keys(res); this.totalNumberClients += clientsKeys.length; clientsKeys.forEach(clientKey => { // 先取出messages值,方便后续判断和使用 const userMessages = res[clientKey]['messages']; // 同时满足i<99和messages不为undefined两个条件才添加 if (i < 99 && userMessages !== undefined) { this.clientsShortList.push({ name: res[clientKey]['name'], messages: userMessages }); } i += 1; }); console.log(this.clientsShortList); }); }
额外提示:
- 如果你的业务场景中,
messages可能出现null或者空对象这类无效值,你可以把判断条件改成if (i < 99 && userMessages),这样会自动过滤掉所有“假值”(包括undefined、null、0、空字符串、空对象等) - 把
messages存到临时变量userMessages里,既让代码更简洁,也避免了重复访问同一个属性,提升一点小性能
内容的提问来源于stack exchange,提问作者Kevin Dias
相关产品推荐
相关产品推荐

