join() 函數(shù)是將兩個(gè)列表連接合并成一個(gè)列表。
>> join(10px 20px, 30px 40px) (10px 20px 30px 40px) >> join((blue,red),(#abc,#def)) (#0000ff, #ff0000, #aabbcc, #ddeeff) >> join((blue,red),(#abc #def)) (#0000ff, #ff0000, #aabbcc, #ddeeff)
不過(guò) join() 只能將兩個(gè)列表連接成一個(gè)列表,如果直接連接兩個(gè)以上的列表將會(huì)報(bào)錯(cuò):
>> join((blue red),(#abc, #def),(#dee #eff)) SyntaxError: $separator: (#ddeeee #eeffff) is not a string for `join'
但很多時(shí)候不只碰到兩個(gè)列表連接成一個(gè)列表,這個(gè)時(shí)候就需要將多個(gè) join() 函數(shù)合并在一起使用:
>> join((blue red), join((#abc #def),(#dee #eff))) (#0000ff #ff0000 #aabbcc #ddeeff #ddeeee #eeffff)
在 join() 函數(shù)中還有一個(gè)很特別的參數(shù) $separator,這個(gè)參數(shù)主要是用來(lái)給列表函數(shù)連接列表值是,使用的分隔符號(hào),默認(rèn)值為 auto。
join() 函數(shù)中 $separator 除了默認(rèn)值 auto 之外,還有 comma 和 space 兩個(gè)值,其中 comma 值指定列表中的列表項(xiàng)值之間使用逗號(hào)(,)分隔,space 值指定列表中的列表項(xiàng)值之間使用空格( )分隔。
在 join() 函數(shù)中除非明確指定了 $separator值,否則將會(huì)有多種情形發(fā)生:
如果列表中的第一個(gè)列表中每個(gè)值之間使用的是逗號(hào)(,),那么 join() 函數(shù)合并的列表中每個(gè)列表項(xiàng)之間使用逗號(hào),分隔:
>> join((blue, red, #eff),(green orange)) (#0000ff, #ff0000, #eeffff, #008000, #ffa500)
但當(dāng)?shù)谝粋€(gè)列表中只有一個(gè)列表項(xiàng),那么 join() 函數(shù)合并的列表項(xiàng)目中每個(gè)列表項(xiàng)目這間使用的分隔符號(hào)會(huì)根據(jù)第二個(gè)列表項(xiàng)中使用的,如果第二列表項(xiàng)中使用是,分隔,則使用逗號(hào)分隔;如果第二列項(xiàng)之間使用的空格符,則使用空格分隔:
>> join(blue,(green, orange)) (#0000ff, #008000, #ffa500) >> join(blue,(green orange)) (#0000ff #008000 #ffa500)
如果列表中的第一個(gè)列表中每個(gè)值之間使用的是空格,那么 join() 函數(shù)合并的列表中每個(gè)列表項(xiàng)之間使用空格分隔:
>> join((blue green),(red,orange)) (#0000ff #008000 #ff0000 #ffa500) >> join((blue green),(red orange)) (#0000ff #008000 #ff0000 #ffa500)
如果當(dāng)兩個(gè)列表中的列表項(xiàng)小于1時(shí),將會(huì)以空格分隔:
>> join(blue,red) (#0000ff #ff0000)
如此一來(lái),會(huì)有多種情形發(fā)生,造成使用混亂的情形,如果你無(wú)法記得,什么時(shí)候會(huì)是用逗號(hào)分隔合并的列表項(xiàng),什么時(shí)候是使用空格分隔合并 的列表項(xiàng),在些建議大家使用 join() 函數(shù)合并列表項(xiàng)的時(shí)候就明確指定 $separator 參數(shù),用來(lái)指定合并的列表中使用什么方式來(lái)分隔列表項(xiàng):
>> join(blue,red,comma) (#0000ff, #ff0000) >> join(blue,red,space) (#0000ff #ff0000) >> join((blue green),(red,orange),comma) (#0000ff, #008000, #ff0000, #ffa500) >> join((blue green),(red,orange),space) (#0000ff #008000 #ff0000 #ffa500) >> join((blue, green),(red,orange),comma) (#0000ff, #008000, #ff0000, #ffa500) >> join((blue, green),(red,orange),space) (#0000ff #008000 #ff0000 #ffa500) >> join(blue,(red,orange),comma) (#0000ff, #ff0000, #ffa500) >> join(blue,(red,orange),space) (#0000ff #ff0000 #ffa500) >> join(blue,(red orange),comma) (#0000ff, #ff0000, #ffa500) >> join(blue,(red orange),space) (#0000ff #ff0000 #ffa500)
你可以寫(xiě)出下面函數(shù)運(yùn)行出的結(jié)果嗎?
請(qǐng)驗(yàn)證,完成請(qǐng)求
由于請(qǐng)求次數(shù)過(guò)多,請(qǐng)先驗(yàn)證,完成再次請(qǐng)求
打開(kāi)微信掃碼自動(dòng)綁定
綁定后可得到
使用 Ctrl+D 可將課程添加到書(shū)簽
舉報(bào)