按照与另一个数组相同的顺序对一个数组进行排序

2024-01-11

我有一些像这样的 50 多个名字的数组。

["dan", "ryan", "bob", "steven", "corbin"]
["bob", "dan", "steven", "corbin"]

我有另一个顺序正确的数组。请注意,上面的第二个数组并不包含所有名称,但我仍然希望它遵循以下顺序:

["ryan", "corbin", "dan", "steven", "bob"]

它没有逻辑顺序,它们只是按这个顺序排列。对我来说有意义的是将每个数组与正确排序的数组进行比较。我想我看到有人用 PHP 做这个,但我找不到 JavaScript 解决方案。有谁知道如何做到这一点?我已经尝试了几个小时,但我被难住了。


Use indexOf()获取引用数组中每个元素的位置,并在比较函数中使用它。

var reference_array = ["ryan", "corbin", "dan", "steven", "bob"];
var array = ["bob", "dan", "steven", "corbin"];
array.sort(function(a, b) {
  return reference_array.indexOf(a) - reference_array.indexOf(b);
});
console.log(array); // ["corbin", "dan", "steven", "bob"]

对于大型数组来说,每次都搜索参考数组效率很低。如果这是一个问题,您可以将其转换为将名称映射到位置的对象:

var reference_array = ["ryan", "corbin", "dan", "steven", "bob"];
reference_object = {};
for (var i = 0; i < reference_array.length; i++) {
    reference_object[reference_array[i]] = i;
}
var array = ["bob", "dan", "steven", "corbin"];
array.sort(function(a, b) {
  return reference_object[a] - reference_object[b];
});
console.log(array);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按照与另一个数组相同的顺序对一个数组进行排序 的相关文章

  • axios 请求中未发送正文数据

    我试图通过 axios 请求将数据发送到我的后端脚本 但正文看起来是空的 这是前端发送的请求 axios request method GET url http localhost 4444 next api headers Authori
  • 使用 jQuery Select2 清除下拉菜单

    我正在尝试使用奇妙的方式以编程方式清除下拉菜单Select2 http ivaynberg github com select2 图书馆 使用 Select2 远程 ajax 调用动态填充下拉列表query option HTML
  • Mapbox GL 中的 MaxBounds 和自定义非对称填充

    我有一个 Mapbox GL JS 应用程序 在地图上显示一些小部件 为了确保地图上的任何内容都不会被它们隐藏 我使用以下命令添加了一些填充map setPadding 这是一个不对称的 在我的例子中左边比右边大 它按预期工作 例如fitB
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • 如何立即启动setInterval循环? [复制]

    这个问题在这里已经有答案了 在一个简单的setInterval setInterval function Do something every 9 seconds 9000 第一个动作将在 9 秒后发生 t 9s 如何强制循环立即执行第一个
  • 如何使 d3 饼图响应式?

    我有一个 PIE 图表 它工作正常 但我无法使其具有响应能力和可调整大小 我需要它与移动浏览器和 iPad 等兼容 div div
  • React JS 服务器端问题 - 找不到窗口

    你好 我正在尝试在我的reactJS项目中使用react rte 我有服务器端渲染 每次我想使用这个包时 我都会得到 return msie 6 9 b test window navigator userAgent toLowerCase
  • 为什么这行带有“await”的代码会触发微任务队列处理?

    以下引用是我理解微任务队列处理的主要参考 当 JS 堆栈清空时 就会处理微任务 承诺使用 杰克 阿奇博尔德 https twitter com jaffathecake status 954653170986311680 这对我来说没有意义
  • 检索 css3 缩放元素的宽度/高度

    我正在与 offsetWidth 属性的奇怪之处 我认为 作斗争 这是场景 比方说 我有一个span标签 在我的js中 在某个时刻我执行css3转换 对于这个元素 例如 el set styles transform scale scale
  • JavaScript中如何确保输入的值是数字而不是字符串?

    我创建了这个函数 function num var x prompt please enter your first number var y prompt please enter your second number if isNaN
  • 当我多次调用 requestAnimationFrame 时会发生什么

    我的意思是一次调用多个具有相同功能的 requestAnimationFrame function Draw DoSomething function AFunc prepare something requestAnimationFram
  • 如何使用新的analytics.js跟踪多个帐户?

    我需要使用 Google 的新的analytics js 跟踪一个页面上两个帐户的综合浏览量 有大量教程和示例如何使用较旧的 ga js 进行操作 但我发现的只是这个分析文档页面 https developers google com an
  • 呃!尝试将包发布到 npm 时出现 403

    我正在尝试将包发布到 npm 您可以在此处查看存储库 https github com biowaffeln mdx state https github com biowaffeln mdx state 我登录到 npmnpm login
  • 类中可以有生成器 getter 吗?

    我的意思是吸气剂是发电机 我相信这一切都是 ES6 也许像这样 class a get count let i 10 while i yield i let b new a for const i of b count console lo
  • 如何在 webpack 中渲染嵌套的 SASS?

    采取以下CSS MyComponent color blue Button color red 以及以下 React 组件 import React from react import classes from MyComponent sc
  • Javascript 浮点乘以 100 仍然有错误

    我有一个货币字段的文本输入 我在字段中输入 33 91 并在尝试使用 乘以 100 技术时得到以下结果 var curWth parseInt trans withdraw index val 100 3390 var curWth par
  • 扩展 RegExp 以获取文件扩展名

    我知道 已经有很多基于 RegExp 的解决方案 但是我找不到适合我需求的解决方案 我有以下函数来获取 URL 的各个部分 但我还需要文件扩展名 var getPathParts function url var m url match w
  • Service Worker 与 Shared Worker

    Service Worker 和 Shared Worker 有什么区别 我什么时候应该使用 Service Worker 而不是 Shared Worker 反之亦然 Service Worker 具有共享 Worker 之外的附加功能
  • 尝试使用 Javascript 解决对称差异

    我正在尝试找出对称的解决方案 使用 javascript 完成以下任务的差异 目标 接受未指定数量的数组作为参数 保留数组中数字的原始顺序 不删除单个数组中数字的重复项 删除数组中出现的重复项 因此 例如 如果输入是 1 1 2 6 2 3
  • 为什么 Node.js 应用程序只能从 127.0.0.1/localhost 访问?

    我本来打算教我的朋友介绍 Node 但是后来 我想知道为什么这个代码来自nodejs org var http require http http createServer function req res res writeHead 20

随机推荐

  • 如何隐藏 SWT 组合以使其不占用空间?

    我需要隐藏一个组合 以及里面的所有孩子 只需设置setVisible false 将保留组合的空间 Composite outer new Composite parent SWT NONE outer setLayout new Grid
  • 如何在mp3上实现seek

    我即将进入一个涉及解码 播放 mp3 流的项目 我有一个Java解码器 JLayer 但据我所知它没有搜索功能 我不使用内置播放器 我需要实现我自己的播放器 另外 流是加密的 所以我需要实时解密 解码 不能拥有整个解密文件 那么如何在 mp
  • 我们可以为“Skype for Business”构建 Skype 机器人吗?

    我见过与 Skype 一起使用的机器人编程示例 是否可以使用 Microsoft 的机器人 认知服务工具 框架开发在 Skype for Business 上运行的企业机器人 Skype for Business 尚不支持机器人框架 htt
  • 使用Python对文件夹中的每个文件执行命令

    我正在尝试创建一个Python脚本来 查看文件夹 input 对于该文件夹中的每个视频 运行 mencoder 命令 将它们转码为可在我的手机上播放的内容 mencoder 完成运行后 删除原始视频 这看起来不太难 但我很喜欢 python
  • 当这个通用约束看起来有循环引用时,为什么它会编译

    我在 csharp 中为 MVCContrib Html 帮助器编写了一个扩展方法 并对通用约束的形式感到惊讶 从表面上看 它似乎通过类型参数循环引用自身 也就是说 该方法可以根据需要进行编译和工作 我很乐意有人解释为什么这样做有效 以及是
  • Windows 10 UWP 中的电话

    目前 我找到了 Windows ApplicationModel Calls API 无法拨打电话或启动可用于从我的应用程序拨打电话的不同选项 我也尝试了这个代码 但仍然无法实现电话呼叫功能 UWP有什么解决方案吗 谢谢 if ApiInf
  • 两个 div 中的段落对齐方式,中间有图像

    我怎样才能对齐我的段落 如下图所示 我需要展示一份报纸之类的东西 其中应该包含此内容 以下是我正在使用的html代码 div class left div div class right div div class myImage img
  • PHP 中的字符串解析

    我正在尝试用 PHP 解析一个字符串 father name John father weight 44 50 kid gt name Marko gt age 12 kid gt name Sevda gt age 17 kid gt n
  • 如何在R中将槽的默认值设置为NULL?

    我是 R 新手 我试图定义一个类似于树节点的类 也就是说 它有一个左节点和右节点 它应该与父节点属于同一类 所以我将类定义如下 setClass Node representation left Node right Node 我想通过设置
  • Python - 服务器从两个 UDP 套接字监听

    我是 Python 新手 而且我无法让服务器同时监听两个端口 这是我到目前为止编写的代码 sock client1 socket socket socket AF INET Internet socket SOCK DGRAM UDP so
  • 如何用Xcode修改并行编译数量

    使用 XCode 构建 C 项目时如何更改并行编译的数量 我不是在谈论分布式构建 而是在一台计算机上同时编译来自单个项目的一组源文件 当前使用Xcode 3 2 4 Thanks 对于 Xcode 4 您必须设置 IDEBuildOpera
  • 通过 ReactJS 访问 JSON 中的数组

    我使用 ReactJS 从 JSON 文件获取数据
  • 如何在 pygame 中从图像中剪切圆形(或任何非矩形)?

    我正在使用 Pygame 并有一个图像 我可以从中剪出一个矩形 image pygame transform scale pygame image load example png 32 32 handle surface image co
  • 使用onDraw扩展android按钮

    我想更改按钮形状但我想使用 onDaw 方法和扩展按钮班级 所以我刚开始做的是
  • 如何在QT中访问父控件指针

    我有一个类似这样的代码 Window Window QStackedWidget centralApp new QStackedWidget QWidget1 wgt1 QWidget1 QWidget2 wgt2 QWidget2 QWi
  • 添加片段时从汉堡包到箭头图标的过渡动画

    我已经实现了主 细节流程 我想在添加片段后获得从汉堡包图标到箭头图标的过渡动画 与打开导航抽屉时的动画相同 我正在使用如下代码 protected void onCreate Bundle savedInstanceState super
  • BigQuery - 如何比较“日期”列(使用旧版 SQL)?

    我有一个包含一列的 BigQuery 表Date这是一个date类型 我正在尝试运行此查询 SELECT FROM dataset table name WHERE Date 2016 07 11 这会引发错误 Argument type
  • 高级 HTML Agility Pack 使用

    我对 HTML Agility Pack 还很陌生 因此我需要一些帮助来了解下一步该做什么 我可以做一些简单的事情 比如从 href 中提取一个值 知道我正在寻找的 url 字符串 并且我可以根据正在使用的特定类来提取跨度中的值 但我不明白
  • Mysql将列名从“group”更改为“group_code”

    我将列名设置为 group 结果发现这是一个保留字 现在我尝试将名称更改为 group code 但出现错误 我尝试 ALTER TABLE task values CHANGE group group code VARCHAR 40 NO
  • 按照与另一个数组相同的顺序对一个数组进行排序

    我有一些像这样的 50 多个名字的数组 dan ryan bob steven corbin bob dan steven corbin 我有另一个顺序正确的数组 请注意 上面的第二个数组并不包含所有名称 但我仍然希望它遵循以下顺序 rya