在 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

更新于: 22-Jan-2021

249 次浏览

开始您的 职业生涯

完成课程并获得认证

开始
广告