在 JavaScript 中按第二个顺序对一个字符串进行排序

javascriptweb developmentfront end technology

问题

我们需要编写一个 JavaScript 函数,该函数接受两个字符串 str1 和 str2 作为第一个和第二个参数。

我们的函数应该根据字符在 str2 中出现的顺序对 str1 进行排序

例如,如果函数的输入是 −

输入

const str1 = 'coding';
const str2 = 'gncabdi';

输出

const output = 'gncdio';

输出说明

str2 中首先出现的字符被放在最前面,后面跟着的是其他字符,最后跟着 str2 中不存在的字母。

示例

以下是代码 −

const str1 = 'coding';
const str2 = 'gncabdi';
const sortByOrder = (str1 = '', str2 = '') => {
   str2 = str2.split('');
   const arr1 = str1
      .split('')
      .filter(el => str2.includes(el))
      .sort((a, b) => str2.indexOf(a) - str2.indexOf(b));
   const arr2 = str1
      .split('')
      .filter(el => !str2.includes(el));
   return arr1.join('') + arr2.join('');
};
console.log(sortByOrder(str1, str2));

输出

gncdio

相关文章