javascript - 合并 2 个不同数据类型的数组
问题描述
我今天和一位同事交谈,他刚刚对一位潜在员工(没有得到报价)进行了白板考试,这让我想知道我是否可以解决这个针对入门级潜在客户的问题。
好吧,我不能。
问题是......将两个排序的数组合并到一个数组中。
arrayOne = ['a', 'b', 'c', ...'z']
arrayTwo = [1, 2, 3, 4, 5, ...100]
result = [1, 'a', 2, 'b', ...26, 'z', 27, 28, ...100]
这里的想法是
a = 1
b = 2
c = 3
...
z = 26
我环顾四周,找不到一个简单的解决方案。请记住,我们主要是 JavaScript,但潜在员工可以使用他们在面试中选择的任何语言。
我尝试的可悲借口:
function merge_arrays(arr1, arr2) {
let result = [];
let i1 = 0;
let i2 = 0;
for (var i = 0; i < arr1.length + arr2.length; i++) {
if (arr1[i1] > arr2[i2]) {
result.push(arr2[i2]);
i2 += 1;
} else {
result.push(arr1[i1]);
i1 += 1;
}
}
return result;
}
array1 = ["a", "b", "c", "d", "e"];
array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
// returns ["a", "b", "c", "d", "e", undefined, undefined, ...undefined]
在这种情况下,您不能只获取下一个索引并假设它位于正确的位置。
array1 = ["a", "c", "d", "e"];
array2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
// should return ["a", 1, 2, "c", 3, "d", 4, ...13]
解决方案
像这样在数组上做一个 concat
let newArray = [].concat(arr1,arr2)
arr1 和 arr2 可以有不同的类型。
推荐阅读
- java - Webclient 200 状态代码在 responseBody 中失败
- excel - 尝试选择范围内的第一个空单元格
- java - 如何点击href标签?
- android - 在 Android 的两个 Fragment 之间传递数据有哪些不同的方法?
- c++ - 需要关于迭代猜谜游戏的帮助
- node.js - capistrano,远程 shell / nodejs / yarn 不起作用
- html - 离子内容与选项卡菜单重叠
- python - 使用 beautifulsoup 在 Python 中遍历页面
- c++ - g++ ld:使用 -g 标志时未找到架构 x86_64 的符号
- python - 尝试使用不具有相同列名的另一个单独数据帧中的一个数据帧中的 id 来获取数据