Javascript 有条件角环阵列
我有从服务器返回的数据,并根据这些数据向用户显示通知 我试图做的是向除发送者之外的所有人发送通知,为此我需要循环我的数据用户,但不知道如何循环 代码 为了更好地理解,对每个部分都进行了注释 截图 有人能帮忙吗? 更新 为了说明这一点: 逻辑Javascript 有条件角环阵列,javascript,angular,typescript,ionic-framework,Javascript,Angular,Typescript,Ionic Framework,我有从服务器返回的数据,并根据这些数据向用户显示通知 我试图做的是向除发送者之外的所有人发送通知,为此我需要循环我的数据用户,但不知道如何循环 代码 为了更好地理解,对每个部分都进行了注释 截图 有人能帮忙吗? 更新 为了说明这一点: 逻辑 每个用户都有唯一的用户名 用户对象是通知的发送者 组用户是已向其发送通知的组的成员(包括发件人本人) 循环组用户的原因是为了排除其他组中的发件人(用户对象)而不接收通知因此组中除发件人之外的所有人都将收到通知 希望它能清除一点。您可以使用语法在数组元素上循
用户名
组用户
的原因是为了排除其他组中的发件人(用户对象)而不接收通知因此组中除发件人之外的所有人都将收到通知希望它能清除一点。您可以使用语法在数组元素上循环:
找不到名称“user”。您是指实例成员“this.user”吗?
虽然此代码可以解决OP的问题,但最好包含一个解释,说明您的代码如何解决OP的问题。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或用源文档补充说明。@mafortis在userFYI前面添加var或const或let,这不是我的代码,也不是答案。我在修复程序中编辑了您评论的错误,这应该是由于TypeScript抱怨有未声明的变量。@user120242谢谢,我正在重新构建我的应用程序,看看它是否已修复。没有人有想法吗?:)您不会显示标识每个唯一用户的对象属性,也不会显示您打算如何向其他用户发送通知,我认为这需要在看起来像websocket的东西上发送消息connection@user120242关于这个问题的所有内容都包括在内。我还分享了我从服务器收到的结果截图。这意味着我在通知中没有问题,需要显示我是如何发送的。我所需要的只是循环我共享的接收到的数据。添加extr不必要的代码只会使真正想要帮助的人的解决方案变得复杂。例如,我只能假设用户名在用户属性和组中的用户对象之间是唯一的,但我甚至不能确定用户名是否存在于这两个对象中。LocalNotification不提供任何有关其发送对象的指示。(它是要发送给你自己吗?为什么你要用相同的数据向自己弹出多个通知?)如果你在websocket上发送一条消息来触发其他用户的本地通知,这会更有意义,您尚未显示相关代码。@user120242要回答您的问题:1
用户名是唯一的,2
用户名存在于每个用户返回的数据中,无论它们是在组用户还是用户对象中3
是指不发送给您自己(这就是为什么我尝试循环组用户并将用户从该数组中排除)4
向您自己弹出多个通知,循环用户并排除我自己的唯一原因是不弹出多个通知。
// group notif
this.socket.fromEvent('message').subscribe(async (message: any) => {
console.log('group message: ', message); // screenshot below
// loop group users and except sender user, send notification to everyone else.
// (access to group users - tested) `message.msg.message.group.users`
// need to loop here, but how?
// condition to avoid send notification to sender user
// (sender user - tested) `message.msg.message.user.username`
// if (message.msg.message.user.username ............??? ) {
const notifs = LocalNotifications.schedule({
notifications: [
{
title: message.msg.message.user.username,
body: message.msg.message.note,
id: Math.floor(Math.random() * 10),
schedule: { at: new Date(Date.now() + 1000 * 2) },
sound: 'beep.wav',
attachments: null,
actionTypeId: 'OPEN_CHAT',
extra: null
}
]
});
console.log('scheduled notifications', notifs);
// }
});
// group notif
for(const user of users) {
if(user != sender) { ... }
}