算法题

96 阅读1分钟

排序数组中指定的数

let arr = [1,7,4,2, 7];
// 我想排序其中的 1,2
// 结果应该是:arr = [1,2,7, 4, 7]
Array.prototype.sortSomeNumber = function(...args){
    let argsArr = [...args]
    let newArr = []

    // 第一种
    // for (let j = 0; j < argsArr.length; j++) {
    //     for (let i = 0; i < arr.length; i++) {
    //         if(arr[i] === argsArr[j]){
    //             newArr.push(arr[i])
    //             arr.splice(arr.indexOf(arr[i]), 1)
    //         }
    //     }
    // }
    // newArr.sort((a,b)=>a-b)
    // newArr = newArr.concat(arr)
    // return newArr

    // 第二种
    argsArr.some(a => arr.some(b => {
        if(a === b){
            newArr.push(a)
            arr.splice(arr.indexOf(b), 1)
        }
    }))
        newArr.sort((a,b)=>a-b)
    newArr = newArr.concat(arr)
    return newArr

}

let result = arr.sortSomeNumber(1, 2, 7)
console.log(result)  // [1, 2, 7, 7, 4]