第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

函數(shù)寫完,發(fā)現(xiàn)沒有起作用,debug了好久,最后還是決定求助imooc的各位了!

函數(shù)寫完,發(fā)現(xiàn)沒有起作用,debug了好久,最后還是決定求助imooc的各位了!

茅侃侃 2023-05-01 14:10:43
看完《javascript語言精粹》中的array.sort(comparefn)一節(jié)(Page81),很有啟發(fā)性,于是自己試著實現(xiàn)這樣一個通用函數(shù)by:無論數(shù)組對象為何種類型,調(diào)用此函數(shù)就能實現(xiàn)人們一般認(rèn)知意義上的排序。 var by = function (name,minor){ return function (a,b){ var objBy =  function (a,b){ var aValue,bValue; aValue = a[name]; bValue = b[name]; if (aValue === bValue){ return typeof minor === 'function' ? minor(a,b) : 0; } if (typeof aValue === typeof bValue){ return aValue < bValue ? -1 : 1; } return typeof aValue < typeof bValue ? -1 : 1; } var generalBy  = function (a,b){ if (a === b){ return 0; } if (typeof a === 'string' && typeof b === 'string'){ return a.localeCompare(b); } if (typeof a === typeof b){ return a < b ? -1 : 1; } return typeof a < typeof b ? -1 : 1; } if (a && b && typeof a ==='object' && typeof b === 'object'){ return objBy; } return generalBy; } }         //test var arry1 = [8,90,10,2,100,34,35,12]; var arry2 = [4,20,10,34,"hello word","殺星","my god","哈哈哈","高級編程","愛情","四貨","一個人" ,"大人"]; var arry3 = [{name:"maggie",sex:"famale",age:43},{name:"gino",sex:"male",age:28},{name:"laura",sex:"famale",age:20},{name:"tino",sex:"male",age:25},{name:"amy",sex:"famale",age:27}]; console.log(arry1.sort(by())); console.log(arry2.sort(by())); console.log(arry3.sort(by('sex',by('age'))));
查看完整描述

1 回答

?
心有法竹

TA貢獻1866條經(jīng)驗 獲得超5個贊

這里的by應(yīng)該返回的是一個比較函數(shù),你這里返回的是一個“返回比較函數(shù)”的函數(shù),所以應(yīng)該改為(注意最后的改動):

var by = function (name, minor) {    return function (a, b) {        var objBy = function (a, b) {            var aValue, bValue;
            aValue = a[name];
            bValue = b[name];            if (aValue === bValue) {                return typeof minor === 'function' ? minor(a, b) : 0;
            }            if (typeof aValue === typeof bValue) {                return aValue < bValue ? -1 : 1;
            }            return typeof aValue < typeof bValue ? -1 : 1;
        }        var generalBy = function (a, b) {            if (a === b) {                return 0;
            }            if (typeof a === 'string' && typeof b === 'string') {                return a.localeCompare(b);
            }            if (typeof a === typeof b) {                return a < b ? -1 : 1;
            }            return typeof a < typeof b ? -1 : 1;
        }        if (a && b && typeof a === 'object' && typeof b === 'object') {            return objBy(a,b);
        }        return generalBy(a,b);
    }
}
查看完整回答
反對 回復(fù) 2023-05-03
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號