Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 문장 배열에서 문자열 배열의 정확한 개별 개수 찾기

<시간/>

두 개의 문자열 배열이 있다고 가정합니다. 하나는 일부 단어를 나타내고 다른 하나는 다음과 같은 문장을 나타냅니다. -

const names= ["jhon", "parker"];
const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny
yes parker"];

이러한 두 개의 문자열 배열을 취하는 JavaScript 함수를 작성해야 합니다.

함수는 문장 배열의 개수에 대해 매핑된 첫 번째(이름) 배열의 문자열을 포함하는 개체를 준비하고 반환해야 합니다.

따라서 이러한 배열의 경우 출력은 다음과 같아야 합니다. -

const output = {
   "jhon": 1,
   "parker": 3
};

예시

이에 대한 코드는 -

const names= ["jhon", "parker"];
const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny
yes parker"];
const countAppearances = (names = [], sentences = []) => {
   const pattern = new RegExp(names.map(name =>
   `\\b${name}\\b`).join('|'), 'gi');
   const res = {};
   for (const sentence of sentences) {
      for (const match of (sentence.match(pattern) || [])) {
         res[match] = (res[match] || 0) + 1;
      }
   };
   return res;
};
console.log(countAppearances(names, sentences));

출력

콘솔의 출력은 -

{ jhon: 1, parker: 3 }