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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM