js前端面試題(每日兩道2)

1.判斷兩個(gè)矩形是否重疊

用一個(gè)對象的數(shù)據(jù)來表示一個(gè)矩形的位置和大小:

{x:100,y:100,width:150,height:250}

它表示一個(gè)寬為 150 高為 250 的矩形在頁面上的 (100, 100) 的位置帅掘。

請你完成一個(gè)函數(shù)?isOverlap?可以接受兩個(gè)矩形作為參數(shù)汗侵,判斷這兩個(gè)矩形在頁面上是否重疊迫像。

答案:

constrect1 = {x:100,y:100,width:100,height:100}

constrect2 = {x:150,y:150,width:100,height:100}

isOverlap(rect1, rect2)// => true

const isOverlap = (rect1, rect2) => {

????let rect1Xmax=rect1.x+rect1.width;

????let rect1Ymax=rect1.y+rect1.height;

????let rect2Xmax=rect2.x+rect2.width;

????let rect2Ymax=rect2.y+rect2.height;

????if(rect1.x<rect2.x&&rect2.x<rect1Xmax||rect2.x<rect1.x&&rect1.x<rect2Xmax){
????????if(rect1.y<rect2.y&&rect2.y<rect1Ymax||rect2.y<rect1.y&&rect1.y<rect2Ymax) {
? ? ? ? ? ? return true;
????????}
? ???????return false;
????}
?????return false;
}

2.safeGet

有時(shí)候我們需要訪問一個(gè)對象較深的層次徘溢,但是如果這個(gè)對象某個(gè)屬性不存在的話就會報(bào)錯(cuò)宛畦,例如:

var data = {a: {b: {c:'ScriptOJ'} } }

data.a.b.c// => scriptoj

data.a.b.c.d// => 報(bào)錯(cuò)具被,代碼停止執(zhí)行

console.log('ScriptOJ')// => 不會被執(zhí)行

請你完成一個(gè)?safeGet?函數(shù)纬纪,可以安全的獲取無限多層次的數(shù)據(jù)蚓再,一旦數(shù)據(jù)不存在不會報(bào)錯(cuò),會返回?undefined育八,例如:

var data = {a: {b: {c:'ScriptOJ'} } }

safeGet(data,'a.b.c')// => scriptoj

safeGet(data,'a.b.c.d')// => 返回 undefined

safeGet(data,'a.b.c.d.e.f.g')// => 返回 undefined

console.log('ScriptOJ')// => 打印 ScriptOJ

答案

const safeGet = (data, path) => {

????if(!path) return undefined;

????var arr = path.split(".");

????try{

????????while(arr.length){

????????data = data[arr.shift()];

????????}

????}catch(err){

????????return undefined;

????}

????return data;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末对途,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子髓棋,更是在濱河造成了極大的恐慌实檀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件按声,死亡現(xiàn)場離奇詭異膳犹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)签则,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評論 3 399
  • 文/潘曉璐 我一進(jìn)店門须床,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人渐裂,你說我怎么就攤上這事豺旬∧瞥停” “怎么了?”我有些...
    開封第一講書人閱讀 169,078評論 0 362
  • 文/不壞的土叔 我叫張陵族阅,是天一觀的道長篓跛。 經(jīng)常有香客問我,道長坦刀,這世上最難降的妖魔是什么愧沟? 我笑而不...
    開封第一講書人閱讀 59,979評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮鲤遥,結(jié)果婚禮上沐寺,老公的妹妹穿的比我還像新娘。我一直安慰自己盖奈,他們只是感情好混坞,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著钢坦,像睡著了一般拔第。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上场钉,一...
    開封第一講書人閱讀 52,584評論 1 312
  • 那天,我揣著相機(jī)與錄音懈涛,去河邊找鬼逛万。 笑死,一個(gè)胖子當(dāng)著我的面吹牛批钠,可吹牛的內(nèi)容都是我干的宇植。 我是一名探鬼主播,決...
    沈念sama閱讀 41,085評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼埋心,長吁一口氣:“原來是場噩夢啊……” “哼指郁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拷呆,我...
    開封第一講書人閱讀 40,023評論 0 277
  • 序言:老撾萬榮一對情侶失蹤闲坎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后茬斧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體腰懂,經(jīng)...
    沈念sama閱讀 46,555評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評論 3 342
  • 正文 我和宋清朗相戀三年项秉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绣溜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,769評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娄蔼,死狀恐怖怖喻,靈堂內(nèi)的尸體忽然破棺而出底哗,到底是詐尸還是另有隱情,我是刑警寧澤锚沸,帶...
    沈念sama閱讀 36,439評論 5 351
  • 正文 年R本政府宣布跋选,位于F島的核電站,受9級特大地震影響咒吐,放射性物質(zhì)發(fā)生泄漏野建。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評論 3 335
  • 文/蒙蒙 一恬叹、第九天 我趴在偏房一處隱蔽的房頂上張望候生。 院中可真熱鬧,春花似錦绽昼、人聲如沸唯鸭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,601評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽目溉。三九已至,卻和暖如春菱农,著一層夾襖步出監(jiān)牢的瞬間缭付,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,702評論 1 274
  • 我被黑心中介騙來泰國打工循未, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留陷猫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評論 3 378
  • 正文 我出身青樓的妖,卻偏偏與公主長得像绣檬,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子嫂粟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評論 2 361