首页 >web前端 >js教程 >如何在不使用 ID 的情况下根据另一个数组的顺序对 JavaScript 数组进行排序?

如何在不使用 ID 的情况下根据另一个数组的顺序对 JavaScript 数组进行排序?

Susan Sarandon
Susan Sarandon原创
2024-12-12 11:46:13997浏览

How to Sort a JavaScript Array Based on Another Array's Order Without Using IDs?

根据另一个没有 ID 的数组的顺序对 JavaScript 数组进行排序

考虑以下场景:您有两个数组,itemsArray 和 sortingArr。 itemsArray 包含名称字母对,例如 ['Anne', 'a'],而 sortingArr 指定所需的字母顺序,例如 ['b', 'c', 'b', 'b', 'a', 'd'].

目标是重新排列 itemsArray,使其顺序尽可能与 sortingArr 的顺序匹配,尽管缺乏唯一性

实现此目的的一种优雅而有效的方法是通过排序方法:

itemsArray.sort(function(a, b){  
  return sortingArr.indexOf(a) - sortingArr.indexOf(b);
});

在此代码段中,排序方法使用自定义比较函数来比较 itemsArray 中的每个元素。该函数返回 sortingArr 中当前元素的索引与其他元素的索引之间的差异。此比较确保具有相同字母的元素被分组在一起并根据 sortingArr 进行排序。

输出 itemsArray 将重新排列如下:

[
  ["Bob", "b"],
  ["Jason", "c"],
  ["Henry", "b"],
  ["Thomas", "b"]
  ["Anne", "a"],
  ["Andrew", "d"],
]

以上是如何在不使用 ID 的情况下根据另一个数组的顺序对 JavaScript 数组进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn