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

JavaScript에서 임의의 문자열을 기반으로 배열의 문자열 형성 및 일치

<시간/>

다음과 같은 이름을 포함하는 문자열 배열이 있다고 가정해 보겠습니다. -

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];

그리고 다음과 같은 임의의 문자열 -

const str = 'lsoaakjm';

이러한 배열과 문자열을 두 인수로 사용하는 JavaScript 함수를 작성해야 합니다.

그런 다음 함수는 배열의 각 요소에 대해 해당 특정 요소가 두 번째 인수로 제공된 문자열에서 완전히 구성될 수 있는지 여부를 확인해야 합니다.

이 조건이 배열의 요소에 대해 충족되면 해당 요소를 반환해야 하며 그렇지 않으면 빈 문자열을 반환해야 합니다.

예시

다음은 코드입니다 -

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
const str = 'lsoaakjm';
const initialise = (str = '', map) => {
   for(let i = 0; i < str.length; i++){
      map[str[i]] = (map[str[i]] || 0) + 1;
   };
};
const deleteAll = map => {
   for(key in map){
      delete map[key];
   };
};
const checkForFormation = (arr = [], str = '') => {
   const map = {};
   for(let i = 0; i < arr.length; i++){
      const el = arr[i].toLowerCase();
      initialise(str, map);
      let j;
      for(j = 0; j < el.length; j++){
         const char = el[j];
         if(!map[char]){
            break;
         }else{
            map[char]--;
         }
      };
      if(j === el.length){
         return arr[i];
      };
      deleteAll(map);
   }
   return '';
};
console.log(checkForFormation(arr, str));

출력

다음은 콘솔 출력입니다 -

Kamal