如果字符串不匹配条件,如何从数组中删除元素



如果settlementDesc字符串没有":" colon从数组中删除该条目,而不是在下面的代码中删除该条目,那么在下面的代码中实现了什么,它将返回两个元素?

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));

预期输出

由于settlementDESC包含结肠,因此不应省略,我们应该进行过滤响应。

[
{
    "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)"
}
]

使用过滤器

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));

您的代码几乎在那里。只需将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))

删除!从滤波器函数。并确保您将正确的变量传递到功能中。它对我有用。

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

最新更新