문자열 배열과 배열에서 검색해야 하는 또 다른 문자열이 제공됩니다. 사용자가 입력을 통해 제공한 모든 문자가 포함되어 있는지 여부를 확인하는 배열을 필터링할 수 있습니다.
동일한 작업을 수행하는 코드는 -
예시
해결책 1
const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48, A59, Amar Colony"]; const input = "g12, kal"; const pn = input.split(" "); const requiredDeliveries = deliveries.filter(delivery => pn.every(p => delivery.toLowerCase() .includes(p.toLowerCase()))); console.log(requiredDeliveries);
출력
콘솔의 출력 -
["14/02/2020, 11:47,G12, Kalkaji"]
또 다른 좀 더 나은 접근 방식에서는 아래와 같이 입력을 분할하는 단계를 제거할 수 있습니다. -
예시
해결책 2
const deliveries = ["14/02/2020, 11:47,G12, Kalkaji", "13/02/2020, 11:48, A59, Amar Colony"]; const input = "g12, kal"; const requiredDeliveries = deliveries .filter(delivery => delivery.toLowerCase() .includes(input.toLowerCase())); console.log(requiredDeliveries);
그러나 이 두 번째 접근 방식을 사용하는 동안 시퀀스에 민감하다는 것은 AB가 ab 또는 Ab와 일치하지만 BA 또는 ba와는 일치하지 않음을 의미한다는 점을 명심해야 합니다.
콘솔의 출력 -
출력
["14/02/2020, 11:47,G12, Kalkaji"]