js有序数组中插入一个元素,并有序的输出

题目:比较传入函数的参数,将参数组成数组,从小到大排序,返回新的数组。

如:

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 = 0function 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)
原文地址:https://www.cnblogs.com/wangwenhui/p/11506056.html