在订阅上Stomp客户端创建新的数组javascripts

在订阅上Stomp客户端创建新的数组javascripts,javascript,arrays,stomp,Javascript,Arrays,Stomp,当服务器发送消息时,我正在使用javascript Stomp客户端进行订阅 需要 我需要创建一个新的订阅消息数组。每条消息都有不同的id。如果id存在,则不会推送任何内容,但如果数组不存在,则会将新对象推送到空数组 这就是我尝试过的 代码: 问题 每当新id进入时,它都会推送到数组中,但如果同一id再次进入,它也会推送到数组中 我怎样才能解决这个问题?提前感谢您不希望在将数据推入第一个空数组后执行if(recivedData.length){块。请使用elseif语句的一部分: stompCl

当服务器发送消息时,我正在使用javascript Stomp客户端进行订阅

需要 我需要创建一个新的订阅消息数组。每条消息都有不同的id。如果id存在,则不会推送任何内容,但如果数组不存在,则会将新对象推送到空数组

这就是我尝试过的

代码:

问题 每当新id进入时,它都会推送到数组中,但如果同一id再次进入,它也会推送到数组中


我怎样才能解决这个问题?提前感谢

您不希望在将数据推入第一个空数组后执行
if(recivedData.length){
块。请使用
else
if语句的一部分:

stompClient.subscribe('/topic/info', function(msg) {

  var parsedData = JSON.parse(msg.body)

  if (!recivedData.length) {
    recivedData.push(parsedData)
    console.log(recivedData)
  } else {
    if (recivedData.some(e => e.id === parsedData.id)) {
      console.log(" there")
      console.log(recivedData)
    } else {
      console.log("not there")
      recivedData.push(parsedData)
      console.log(recivedData)
    }
  }

  console.log(recivedData)
});
stompClient.subscribe('/topic/info', function(msg) {

  var parsedData = JSON.parse(msg.body)

  if (!recivedData.length) {
    recivedData.push(parsedData)
    console.log(recivedData)
  } else {
    if (recivedData.some(e => e.id === parsedData.id)) {
      console.log(" there")
      console.log(recivedData)
    } else {
      console.log("not there")
      recivedData.push(parsedData)
      console.log(recivedData)
    }
  }

  console.log(recivedData)
});