JS 回调函数
JS 回调函数
js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数。
**这是一个回调函数的用法
arrayGeneration() 可以产生一个20个数值在0-100的随机数
bubbleSort() 可以对任意长度的数组进行冒泡排序,此处需要利用arrGeneration 产生的数组,故利用回调函数
第一次使用回调函数遇到的问题:
arrayGeneration(bubbleSort)没有返回需要的数组
但是在bubbleSort()最后有return 一个数组, 调用arrayGeneration 没有收到,
所以修改为 return bubblesort();
思考:有数组的回调函数的数组容易被修改,原函数如何确保自己的数组不轻易被串改呢?另外备份一个一样的数组?
function arrayGeneration(fn){
var arr = [];
for(var i = 0; i < 20; i++){
var num = parseInt(Math.random()*100);
arr.push(num);
}
//bubbleSort(arr); 修改之前
return bubbleSort(arr);
}
function bubbleSort(arr){
for(var i = 1 ; i <=arr.length-2; i++){
for(var j = 0; j<arr.length-i; j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// console.log(arr);
return arr;
}