数组的插入

let arr = [12, 8, 15, 1, 24];

    //1.先抓一张到手里[handle也是一个数组]
    /* let handle = arr.slice(0, 1);
    或者 */
    let handle = [];
    handle.push(arr[0]);

    //2.依次去抓桌面上剩下的牌
    for (let i = 1; i < arr.length; i++) {
      //A是当前新抓的牌
      let A = arr[i];

      //3.用每一次新抓的牌A和手里的牌handle进行逐一比较[从后往前比]
      for (let j = handle.length - 1; j >= 0; j--) {
        //B是取出来的需要和A进行比较的,手里的某张牌
        let B = handle[j];

        //4.如果A>B需要把新抓的牌A放在B的后面
        if (A > B) {
          handle.splice(j + 1, 0, A);
          //如果已经放在手中了,则没必要在要手里的其他牌比较了,继续抓下一张牌去
          break;
        }

        //5.如果和手里的牌都比完了,发现A没有比手里的任何牌大,我们把A放在最前面即可
        if (j === 0) {
          handle.unshift(A);
        }

      }
    }
    console.log(handle);//[1, 8, 12, 15, 24]

 

posted @ 2021-05-22 00:35  林默默  阅读(359)  评论(0)    收藏  举报