gpt4 book ai didi

javascript - 如何根据条件从数组中删除重复元素?

转载 作者:行者123 更新时间:2023-12-02 23:29:45 26 4
gpt4 key购买 nike

如果有多个消息且元素“settlementDesc”不包含未覆盖或无效数量,则尝试编写逻辑,反之亦然。我应该能够使用 notCovered/invalidQuantity 字符串删除重复项并保留。

数据

All these scenarios should be if messages are more then 1 in length 
Scenario#1

const messages = [

          {

            "settlementCode": "58",

            "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          },

          {

            "settlementCode": "58",

            "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          },

          {

            "settlementCode": "359",

            "settlementDesc": "Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          }

        ];

Scenario#2

const messages = [

          {

            "settlementCode": "58",

            "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          },

          {

            "settlementCode": "58",

            "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          }

        ];

main.js

const validateEntries = (messages) => {
let filteredMsg;
if (!messages) {
return [];
}
if(messages.length > 1) {
console.log("Multiple messages");
const response = [];
let bRet = false;
const mulitpleMessages = messages.reduce((acc,curr) => {
if (/not covered|invalid quantity/i.test(curr.settlementDesc !== true) {
bRet = true;
}
if(bRet) {
if( acc.settlementCode == curr.settlementCode) {
return acc;
}
}
return curr;
});
filteredMsg = mulitpleMessages;
} else {
filteredMsg = messages.filter((item) => {
if (/not covered|invalid quantity/i.test(item.settlementDesc)) {
return true;
} else {
return item.settlementDesc.includes(':');
}
});
}

return filteredMsg;
};

console.log(validateEntries(messages));

预期输出

Scneario#1 ouput 

[


          {

            "settlementCode": "359",

            "settlementDesc": "Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          }

        ];

Scenario#2

[

          {

            "settlementCode": "58",

            "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card."

          }]

错误

let bRet = false;
38 | const mulitpleMessages = messages.reduce((acc,curr) => {
> 39 | if (/not covered|invalid quantity/i.test(curr.settlementDesc !== true) {
|
41 | bRet = true;
42 | }

最佳答案

您可以使用嵌套的filter()

const messages = [ { "settlementCode": "58", "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card." }, { "settlementCode": "58", "settlementDesc": "Not Covered Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card." }, { "settlementCode": "359", "settlementDesc": "Needs prior authorization: System could not process your request. Call us at the toll-free number on your benefit ID card." } ];

const res = messages.filter(x =>
messages.filter(a => a.settlementCode === x.settlementCode).length === 1
);

console.log(res)

关于javascript - 如何根据条件从数组中删除重复元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56565363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com