javascript - Javascript - 找出第一个元素出现在排序数组以及另一个未排序集合中
问题描述
我有一个未排序数字数组和另一个排序数字数组,例如
const unSortedArray = [54, 23, 55, 76, 9, 11];
const sortedArray= [1, 2, 3, 4, ...., 100]
我怎样才能找出first element
出现在 my中的sortedArray
which 也应该是存在于 my 中的元素unSortedArray
?在上面的示例中,应该返回 9,因为 9 存在于 unSortedArray 中,并且它位于 sortedArray 中的其他元素之前
请注意,我在上面的示例中使用了 1, 2, 3, 4 ,但我的真实示例不是数字而是GUID,假设我们不能应用排序方法unSortedArray
然后选择第一个元素。
我考虑过合并两个数组,但是如何在不破坏 sortedArray 排序的同时合并两者?
这是一些例子
1) 输出应为 1,因为即使元素 1、2、9 和 10 都存在于两个数组中,1 的顺序优先于 sortedArray 中的 2、9、10
const unSortedArray = [54, 23, 55, 76, 9, 10, 2, 1];
const sortedArray= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
2) 输出应该是 9,因为即使元素 9 和 10 都存在于两个数组中,9 在 sortedArray 中的顺序比 10 优先
const unSortedArray = [54, 23, 55, 76, 10, 9];
const sortedArray= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
3) 输出应该是 '' 因为 unSortedArray 中没有元素出现在 sorted Array
const unSortedArray = [54, 23, 55, 76, 11];
const sortedArray= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
解决方案
使用 for 循环的一种快速而肮脏的方法:
const unSortedArray = [54, 23, 55, 76, 9, 11];
const sortedArray= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let firstVal;
for (i = 0; i < sortedArray.length; i++) {
if (unSortedArray.includes(sortedArray[i])) {
firstVal = sortedArray[i];
break;
}
}
console.log(firstVal);
推荐阅读
- runtime-error - 运行时中的静脉-lte omnet++ 示例的问题
- java - Java Swing:JEditorPane 中的 HTML 表单 - 文本输入编码问题
- python - 使用不稳定的 API 的 Python 技巧
- mule - 在 Anypoint Studio 中从 AWS S3 存储桶获取对象时过滤文件类型
- parsing - 邮递员:如何仅将部分标头响应保存为环境值
- c# - 我可以使用 .NET DLL 来解决 MONO NotImplementedException
- slack - 斜杠命令响应发送两个不同的响应,一个给用户,另一个给通道
- python - 曝光模式 OpenCV 4.0.1
- vue.js - 如何将派生字符串的值传递给 v-model
- sql - 将虚拟记录添加到视图的优雅方式?