Удалить или отфильтровать значения из массива, используя для l oop или функцию - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть массив, и я хотел бы фильтровать или удалять следующие URL-адреса из моего массива каждый раз, когда они появляются:

"https://basueUrl.com/Claim"
"https://basueUrl.com/ExplanationOfBenefit"

Мой массив

Array= [  
        "https://basueUrl.com/Patient"
        "https://basueUrl.com/Organization"
        "https://basueUrl.com/Claim"
        "https://basueUrl.com/Practitioner"
        "https://basueUrl.com/Encounter"
        "https://basueUrl.com/Condition"
        "https://basueUrl.com/Claim"
        "https://basueUrl.com/ExplanationOfBenefit"
        "https://basueUrl.com/Claim"
        "https://basueUrl.com/ExplanationOfBenefit" 
        "https://basueUrl.com/ExplanationOfBenefit"
        ]

Первый Решение Я пытался для l oop, но он не работал?

   for( var i = 0; i < Array.length; i++){ 
   if ( Array[i] === "https://basueUrl.com/ExplanationOfBenefit" & "https://basueUrl.com/Claim") {
    Array.splice(i, 1);
    i--;
   }
}
console.log(Array);

Второе решение Я пытался сделать метод удаления тоже не работал.

function arrayRemove(Array, value) {

   return Array.filter(function(ele){
       return ele != value;
   });
}
var result = arrayRemove(Array,"https://basueUrl.com/ExplanationOfBenefit" & "https://basueUrl.com/Claim");

Любое предложение, пожалуйста?

Ответы [ 5 ]

1 голос
/ 20 февраля 2020

Первый подход заключается в изменении массива во время выполнения l oop, что создает проблему с индексом, потому что array.length изменяется при вызове Array.prototype.splice.

Во втором подходе вы не передаете то, что думаете

console.log("https://basueUrl.com/ExplanationOfBenefit" & "https://basueUrl.com/Claim"); 
// A number? probably you want an array.

Вы можете использовать функцию filter и функцию includes следующим образом:

let skip = ["https://basueUrl.com/Claim", "https://basueUrl.com/ExplanationOfBenefit"];
let arr = ["https://basueUrl.com/Patient","https://basueUrl.com/Organization","https://basueUrl.com/Claim","https://basueUrl.com/Practitioner","https://basueUrl.com/Encounter","https://basueUrl.com/Condition","https://basueUrl.com/Claim","https://basueUrl.com/ExplanationOfBenefit","https://basueUrl.com/Claim","https://basueUrl.com/ExplanationOfBenefit","https://basueUrl.com/ExplanationOfBenefit"];
let result = arr.filter(url => !skip.includes(url));

console.log(result);
1 голос
/ 20 февраля 2020
0 голосов
/ 20 февраля 2020

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

arr.filter(ele=>ele!=="https://basueUrl.com/Claim"
&& ele!=="https://basueUrl.com/ExplanationOfBenefit");
0 голосов
/ 20 февраля 2020

Вы можете запустить код ниже. Надеюсь, это поможет.

// use this array instead on the original.  It creates a new array from the original 
// array.
const newFilteredArray = Array.filter(url => url !== 'https://basueUrl.com/Claim' && 
   url !== 'https://basueUrl.com/ExplanationOfBenefit');
...