检查是否可以通过从string1删除一些字符而不重新排列任何字符串的字符来形成string2-JavaScript

我们需要编写一个包含两个字符串的JavaScript函数,比如说str1和str2作为第一个和第二个参数。

该函数应确定我们是否可以通过从str1中删除一些字符来形成str2,而无需重新排序任何字符串的字符。

例如-

如果两个字符串是-

const str1 = 'sjkfampeflef';
const str2 = 'sample';

然后输出应该为true,因为我们可以通过从str1中删除一些字符来形成str2。

示例

以下是代码-

const str1 = 'sjkfampeflef';
const str2 = 'sample';
const checkConvertibility = (str1 = '', str2 = '') => {
   if(!str1 || !str2){
      return false;
   };
   const strArr1 = str1.split('');
   const strArr2 = str2.split('');
   const shorter = strArr1.length < strArr2.length ? strArr1 : strArr2;
   const longer = strArr1.length < strArr2.length ? strArr2 : strArr1;
   for(let i = 0; i < shorter.length; i++){
      const el = shorter[i];
      const index = longer.indexOf(el);
      if(index !== -1){
         longer.splice(index, 1);
         continue;
      };
      return false;
   };
   return true;
};
console.log(checkConvertibility(str1, str2));

输出结果

控制台中的输出将是-

true