题目:比较传入函数的参数,将参数组成数组,从小到大排序,返回新的数组。
如:
insert();console.log(arr); //[] insert(-1,-2); console.log(arr);//[-2,-1] insert(3);console.log(arr);//[-2,-1,3] insert(6,4,5);console.log(arr); //[-2,-1,3,4,5,6]
代码实现:
var arr = []; var index = 0; function insert() { for(let k = 0; k < arguments.length; k ++) { console.log(arguments.length); let num = arguments[k]; //数组本来是有序的,如果i项的值大于传入的参数,在i项的位置插入, for (var i = 0; i < arr.length; i++) { if (arr[i] >= num) { index = i; break; } } //如果插入的位置是数组的最后 if (i >= arr.length) { arr.push(num); } else { //如果是数组的中间或者第一个位置,则依次将index 开始到数组的最后一个元素向后移动一位,把index的位置空出来,插入新的元素 for (let j = arr.length; j > i; j--) { arr[j] = arr[j - 1]; } arr[index] = num; } } return arr; } insert(); console.log(arr); insert(-1,-2); console.log(arr); insert(3); console.log(arr); insert(6,4,5); console.log(arr);
题目:比较传入函数的参数,每次只能传入一个参数,将参数组成数组,从小到大排序,返回新的数组。
var arr = []; var index = 0; function insert(num) { //数组本来是有序的,如果i项的值大于传入的参数,在i项的位置插入, for (var i = 0; i < arr.length; i++) { if (arr[i] >= num) { index = i; break; } } //如果插入的位置是数组的最后 if (i >= arr.length) { arr.push(num); } else { //如果是数组的中间或者第一个位置,则依次将index 开始到数组的最后一个元素向后移动一位,把index的位置空出来,插入新的元素 for (let j = arr.length; j > i; j--) { arr[j] = arr[j - 1]; } arr[index] = num; } return arr; } insert(-1); insert(9);
题目:将数组中的元素从小到大排序
var arr = [2,6,1,4,7]; for(i=0;i<arr.length;i++){ for(j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ let temp = arr[i]; arr[i] =arr[j]; arr[j] = temp; } } } console.log(arr)