根据来自另一个不同长度数组的值对数组进行排序

Jay*_*ydo 0 javascript arrays sorting

我浏览了几篇有类似问题的帖子,但找不到解决我问题的帖子。其他人似乎都在使用另一个相同大小或按值的数组进行排序。

我有两个看起来像这样的数组:

var allCategories = ['Campus', 'Building', 'Floor', 'Room', 'Lecture Theatre', 'Lab'];
var currentCategories = ['Room', 'Lab', 'Campus'];
Run Code Online (Sandbox Code Playgroud)

我怎样才能排序currentCategories,以便顺序匹配allCategories

期望的输出:

currentCategories --> ['Campus', 'Room', 'Lab'];
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 5

“按该数组中元素的索引对该数组进行排序”:

currentCategories.sort(function(a, b) {
  return allCategories.indexOf(a) - allCategories.indexOf(b);
});
// => ["Campus", "Room", "Lab"]
Run Code Online (Sandbox Code Playgroud)