我正在尝试对数组进行排序,只是为了进行训练,但是我遇到了麻烦。
对于我来说,即使使用Google或文档,我也很难理解功能的真正工作原理,但我找不到答案。
我很难知道是否可以使用我的变量j
与我的函数进行交互,以避免从循环的开始算起。
我可以做吗?
当然,如果您有其他选择排序方式,我敢肯定还有其他方法,如果您有时间,请给我您的答案。
这是我尝试过的:
var array = [8, 4, 2, 9, 4, 3, 7, 1, 6, 40, 21, 30];
function findMini(j) {
var min = 100;
var count = j;
for (var i = 0; i < array.length; i++) {
if (i = 0) {
min = array[i + count];
i = i + j;
}
else if (array[i] < min) {
min = array[i];
}
else {
}
}
return min;
}
for (var j = 0; j < array.length; j++) {
console.log('Le tableau [ ' + j + ' ] = ' + findMini(j));
}
还有最后一个问题,我可以声明具有var min = 100;
值的变量undefined
吗?
答案 0 :(得分:1)
好吧,首先我建议学习javascript变量范围:
https://www.w3schools.com/js/js_scope.asp
代码中的问题是变量数组在函数外部声明。如果要在函数内部使用它,可以在内部声明它或将其用作函数的参数:
function findMini(j, arrayInsideFunction) {
......
for (var i = 0; i < arrayInsideFunction.length; i++) {
......
}
.......
console.log('Le tableau [ ' + j + ' ] = ' + findMini(j, array));
然后,关于第二个问题,您可以声明一个未定义的变量:
var min = undefined;
您也可以只定义变量并稍后使用
var min;