在 JavaScript 中检查一个数组是否按照一些杂乱的字母顺序以词典序排序


我们需要编写一个 JavaScript 函数,该函数接受一个字符串单词数组作为第一个参数。函数的第二个参数将是一个字符串,其中包含所有 26 个英语小写字母,但顺序是随机打乱的。

我们的函数的任务是检查数组中的单词是否按照第二个参数指定的顺序正确地按照词典序排列。如果是,我们应该返回 true,否则返回 false。

例如 −

如果单词的输入数组和顺序为 −

const arr = ['this', 'is', 'something', 'mad'];
const order = 'hdetljnopqabcuvwxfgirsykmz';

那么输出应该是 −

const output = true;

因为“t”在“i”之前,“i”在“s”之前,“s”在“m”之前,依此类推。

示例

代码如下 −

 在线演示

const arr = ['this', 'is', 'something', 'mad'];
const order = 'hdetljnopqabcuvwxfgirsykmz';
const isPlacedCorrectly = (arr = [], order) => {
   const { length } = arr;
   for(let i = 0; i < length - 1; i++){
      for(let j =0; j < arr[i].length;j++){
         if(order.indexOf(arr[i][j])< order.indexOf(arr[i+1][j])) {
            break;
         }
         else if (order.indexOf(arr[i][j]) === order.indexOf(arr[i+1][j])){
            continue;
         } else {
            return false;
         }
      }
   }
   return true;
};
console.log(isPlacedCorrectly(arr, order));

输出

在控制台中的输出将是 −

true

更新于: 26-Feb-2021

275 次浏览

开启你的 职业生涯

通过学习课程获得认证

开始
广告