排序函数在放入for循环中时表现不同
Sort function behaves differently when put in a for loop
我有两种排序函数,它们用于对数字数组进行排序,并返回前两个索引的和。然而,当这些函数在for循环中运行时,第二个函数无法正常工作。
这是第一个:
function solution(numbers) {
numbers.sort(function (a, b) {
return a - b;
});
return numbers[0] + numbers[1];
}
这是第二个:
function sumTwoSmallestNumbers(numbers) {
var findSmallest = function(startsAt){
var first = startsAt;
for (var i =0; i<=numbers.length-1; i++){
if(first >= numbers[i]){
first = numbers[i];
}
}
return first;
}
var smallest = findSmallest(numbers[0]);
var index = numbers.indexOf(smallest);
numbers.splice(index,1);
var secondSmallest = findSmallest(numbers[0]);
return smallest+secondSmallest
};
这是for循环:
for (let i = 0; i < 100; i++) {
var randArr = [Test.randomNumber()+1000,Test.randomNumber(),Test.randomNumber(),Test.randomNumber(),Test.randomNumber()];
var staticArr = [1000, 50,12000, 275, 21000, 1];
console.log("Result of user function is: " + sumTwoSmallestNumbers(staticArr) + ". Result of own function is: " + solution(staticArr));
Test.assertEquals(sumTwoSmallestNumbers(randArr), solution(randArr));
}
查看小提琴中的控制台:https://jsfiddle.net/emporio/p4r7go57/1/
numbers.splice(index,1);
这将修改输入数组,删除最小的数字。每次调用sumTwoSmallestNumbers
时,都会删除一个项,这将在下次调用时更改结果。
相关文章:
- JavaScript/Jquery:一个特殊用途的for循环函数
- 为循环函数中的元素指定单击
- Jquery下一个和上一个按钮循环函数
- 循环函数(Javascript回调帮助)
- 循环函数不起作用
- 使用ajax调用循环函数
- 在Javascript中修改循环函数的参数
- 如何循环函数数组并在单击时一次执行一个
- 设置超时可以保存我的循环函数不被视为无响应
- 具有超时的循环函数
- j查询如何在一系列延迟后循环函数
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- for 循环函数似乎未运行
- 对于内部循环函数(新手)
- 循环函数会导致它在 javascript 中无响应
- 循环函数
- 如何优化循环函数
- JS拒绝循环函数
- 中断循环函数
- 在 JavaScript 中循环函数可以吗?