javascript - 制作一个返回各种数组的函数?
问题描述
我正在尝试定义一个函数,合并,当给定两个包含数字的排序数组时,它会返回两个列表中数字的排序数组。
merge([ 4, 5, 6 ], [ 1, 2, 3, 4 ]) => [ 1, 2, 3, 4, 4, 5, 6 ]
merge([ 4 ], [ 2, 5, 8 ]) => [ 2, 4, 5, 8 ]
merge([ 1, 2, 6 ], []) => [ 1, 2, 6 ]
这是我的代码:
function merge(arr1, arr2) {
return arr1.concat(arr2).sort(arr1, arr2);
}
虽然输出是正确的,但我被告知——从我的研究和它的自动化测试中——这段代码的风格不好。它写道:
不处理两个相同长度的数组。
不处理较短的第一个数组。
不处理较短的第二个数组。
我可以编写此代码的更好方法是什么?我应该怎么做更好?
解决方案
您的代码看起来不错,但是您使用的方式sort
不正确。使用排序的一种方法是提供一个函数来比较数组中的两个值,并返回一个数字(正数或负数)来指示这些值的排序。有关排序的更多信息,请参阅本文
考虑对合并方法进行以下更改:
function merge(arr1, arr2) {
return arr1.concat(arr2).sort(function(valueA, valueB) { return valueA - valueB; );
}
推荐阅读
- sparql - SPARQL:将多个谓词值组合成标签数组
- python - fractions.Fraction f 字符串作为带有 __format__ 的浮点数
- c# - 绑定到业务逻辑类时如何修复 ArgumentException
- php - 请求明确给定的 IP,但使用明确给定的主机名来进行 SSL 验证?
- php - Drush 允许的内存大小为 2097152 字节已用尽
- r - r studio中的图例符号和文本间距问题
- jsp - 如何将此选中的项目发送到另一个页面上显示?JSP 伺服器
- parameters - 训练 word2vec 时出现内存错误:分层 softmax
- javascript - Angular 2 在 PDF/PNG 上注释
- python - Python:将编译对象添加到 Memcached