Как проверить, содержит ли строка двоеточие или его пустую строку? - PullRequest
0 голосов
/ 23 мая 2019

это результат, которого я пытаюсь достичь здесь If the "settlementDesc" in messages, has a string without ":" or " ", omit that entry of messages. If all entries are omitted in the messages, then remove the messages entry from the drug price response., поэтому в приведенном ниже коде выполняется противоположная операция, есть идеи, что реализовано неправильно?

main.js

const messages = [
              {
                "settlementCode": "99",
                "settlementDesc": "Not Covered: Call beneficios."
            },
               {
                "settlementCode": "85",
                "settlementDesc": ""
            },
              {
                "settlementCode": "65",
                "settlementDesc": ":"
            }
            ];

    function validateEntries (messages) {
      if(!messages){ return [] };
      const filteredMsg = messages.filter(mesg => {
        if (checkString(mesg)) return mesg
      } );

      return filteredMsg;
    };

    const checkString = (mesg) => {
      if (mesg.settlementDesc.indexOf(":") || mesg.settlementDesc.indexOf("")) {
        return false;
      } else {
        return true;
      }
    };


validateEntries(messages);

ожидаемый результат

[
              {
                "settlementCode": "99",
                "settlementDesc": "Not Covered: Call beneficios."
            }
            ]

Ответы [ 3 ]

0 голосов
/ 23 мая 2019

Попытка использовать include вместо indexOf, так как indexOf всегда возвращает число.

const messages = [
              {
                "settlementCode": "99",
                "settlementDesc": "Not Covered: Call beneficios."
            },
               {
                "settlementCode": "85",
                "settlementDesc": ""
            },
              {
                "settlementCode": "65",
                "settlementDesc": ":"
            }
            ];

    function validateEntries (messages) {
      if(!messages){ return [] };
      const filteredMsg = messages.filter(mesg => {
        if (checkString(mesg))  return mesg;
      } );

      return filteredMsg;
    };

    const checkString = (mesg) => {
      if (mesg.settlementDesc.includes(":")) {
        return true;
      } else {
        return false;
      }
    };


var output = validateEntries(messages);
console.log(output);
0 голосов
/ 23 мая 2019

Вы можете отфильтровать свой список сообщений и вернуть только нужные

 const messages = [
                  {
                    "settlementCode": "99",
                    "settlementDesc": "Not Covered: Call beneficios."
                },
                   {
                    "settlementCode": "85",
                    "settlementDesc": ""
                },
                  {
                    "settlementCode": "65",
                    "settlementDesc": ":"
                }
                ];

let filtered = messages.filter(item => item.settlementDesc.includes(":"))
0 голосов
/ 23 мая 2019

Не совсем уверен, что вы хотите, но:

Один из способов превратить строку в массив или отфильтровать ее:

var myString = 'a b c';
console.log(myString.split(' '));

Будет записан массив ['a', 'b', 'c'].

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...