【发布时间】:2015-09-29 01:18:20
【问题描述】:
嘿伙计们,我写了一个比较数组值并返回最小值的函数,但我想知道是否有办法让它更高效,比如遍历所有数组(使用一个循环)并将结果放入一个新数组中或使单个数组成为单个数组的子数组等。该函数还提供正确的输出,但会打印三遍:
var nums1 = [-7528819, 3927361, -6398192];
var nums2 = [1777100, -2299720, -5566643];
var nums3 = [7188445, 3724971, 7699332];
var nums4 = [-8432528, -159836, -1604959];
var nums5 = [2764889, 4681472, 701396];
var nums6 = [-5073513, 599535, 4388457];
var nums7 = [8689640, 8028586, 1022322];
var nums8 = [-1088592, 1211232, -7868192];
var nums9 = [-5848613, -4945165, 631213];
var nums10 = [3218429, -833619, -1495854];
var nums11 = [8007060, 1637562, -7568493];
var nums12 = [-8391131, -6585338, 131787];
var nums13 = [-3957775, -9396892, -6143241];
var nums14 = [-6258442, -7829421, 3696922];
var nums15 = [2136598, 4935467, -1621605];
var nums16 = [-7162005, 9861954, 8977930];
var nums17 = [7226452, 8551594, 7006517];
var nums18 = [-1751226, -2536997, -1782251];
var nums19 = [380582, 1614389, 3272584];
var nums20 = [-8988205, -5167181, -7561034];
var nums21 = [-484059, -7160121, 4076528];
var nums22 = [1947448, -5551253, 7491190];
var numsLength = nums1.length;
var i = 0;
var minNum;
function test(arr) {
for (i; i < numsLength; i++) {
if (arr[0] < arr[1] && arr[2]) {
minNum = arr[0];
} else if (arr[1] < arr[2] && arr[0]) {
minNum = arr[1];
} else if (arr[2] < arr[1] && arr[0]) {
minNum = arr[2];
}
console.log(minNum);
}
}
test(nums1);
【问题讨论】:
-
不使用
i为什么会有循环? -
又因为
console.log处于无用循环中,所以输出了3次结果... -
试图澄清你的问题,你是在问如何遍历 nums1..nums22 并获得一个包含每个 numsX 数组的最小数量的数组?
-
循环没用,我明白了。对 DJ 来说,是的,这基本上就是我要问的。
标签: javascript arrays loops if-statement