Как удалить элемент из массива, если строка не соответствует условию? - PullRequest
0 голосов
/ 24 мая 2019

если строка урегулирования без двоеточия ":" удалить эту запись из массива, это не происходит с кодом ниже, что неправильно реализовано в коде ниже, он возвращает оба элемента?

main.js

const messages =  [{
    	"settlementCode": "85",
    	"settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85)||Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
    },
    {
    	"settlementCode": "99",
    	"settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
    }
]
        
function validateEntries (messages) {
  if(!messages){ return [] };
  let filteredMsg = messages.filter(item => !item.settlementDesc.includes(":")) 
  return filteredMsg;
};
    
console.log(validateEntries(messages));

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

, так как урегулирование содержит двоеточие, его не следует опускать, и мы должны получить отфильтрованный ответ.

[
{
    "settlementCode": "99",
    "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
}
]

Ответы [ 3 ]

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

Ваш код почти там. Просто передайте messages вместо rejectMessage вашей функции:

const messages= [{ "settlementCode": "85", "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85)||Lo sentimos,Intente de nuevo más tarde. Gracias. (Código de error 85)" }, { "settlementCode": "99", "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias. (Código de error 85)" } ]

 function validateEntries (messages) {
   if(!messages){ return [] };
     let filteredMsg = messages.filter(item => item.settlementDesc.includes(":"))
     return filteredMsg;
   };

console.log(validateEntries(messages))

Вы также можете изменить код, чтобы сделать его более кратким:

const messages= [{ "settlementCode": "85", "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85)||Lo sentimos,Intente de nuevo más tarde. Gracias. (Código de error 85)" }, { "settlementCode": "99", "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias. (Código de error 85)" } ]

let validateEntries = msgs => !msgs 
  ? [] 
  : msgs.filter(item => item.settlementDesc.includes(":"))

console.log(validateEntries(messages))
0 голосов
/ 24 мая 2019

Удалить! из функции фильтра. И убедитесь, что вы передаете правильную переменную в функцию. Это сработало для меня.

function validateEntries (messages) {
  if(!messages){ return [] };
  let filteredMsg = messages.filter(item => item.settlementDesc.includes(":"))
    return filteredMsg
};

validateEntries(messages);
0 голосов
/ 24 мая 2019

Использование фильтра

const messages = [{
    "settlementCode": "85",
    "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85)||Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
  },
  {
    "settlementCode": "99",
    "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
  }
]
console.log(messages.filter(e => e.settlementDesc.includes(':')))

Исправление вашего кода Измените имя переменной на сообщения, содержащие объект

const messages = [{
    "settlementCode": "85",
    "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85)||Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
  },
  {
    "settlementCode": "99",
    "settlementDesc": "Sorry, the system is temporarily unavailable to process your request.(Error Code 85):Lo sentimos,Intente de nuevo más tarde. Gracias.  (Código de error 85)"
  }
]

function validateEntries(messages) {
  if (!messages) {
    return []
  };
  let filteredMsg = messages.filter(item => item.settlementDesc.includes(":"))

  return filteredMsg;
};

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