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

為了賬號安全,請及時綁定郵箱和手機立即綁定

有沒有人來解釋一下這些代碼?這節(jié)實在看不懂啊

? <script type="text/javascript">

? ? //創(chuàng)建數(shù)組

? ? var arr=["*","##","***","&&","****","##*"];

? ? arr[7]="**";

? ??

? ? //刪除數(shù)組中非*的項

? ? for(var i=0;i<arr.length;i++){

? ? ? ? if(arr[i]!=undefined){

? ? ? ? ? ? var myarr=arr[i].split("");

? ? ? ? ? ? for(var j=0;j<myarr.length;j++){

? ? ? ? ? ? ? ? if(myarr[j]!='*'){

? ? ? ? ? ? ? ? ? ? arr.splice(i,1);

? ? ? ? ? ? ? ? ? ? break;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }


? ? //按照字符數(shù)排序

? ? arr.sort(function(a, b){

? ? ? ? if(a.length>b.length)

? ? ? ? {

? ? ? ? ? ? return 1;

? ? ? ? }

? ? ? ? else if(a.length<b.length)

? ? ? ? {

? ? ? ? ? ? return -1;

? ? ? ? }

? ? ? ? else

? ? ? ? {

? ? ? ? ? ? return 0;

? ? ? ? }

? ? })


? ? //將數(shù)組內(nèi)容輸出,完成達(dá)到的效果。

? ? for(var i=0;i<arr.length;i++){

? ? ? ? if(arr[i] != undefined){

? ? ? ? ? ? document.write(arr[i]+'<br />')

? ? ? ? }

? ? }

? ?</script>

正在回答

7 回答

?var arr=['*','##','***','&&','****','##*'];

?arr[7]="**";

document.write(arr[0]+"<br/>") //輸出:*

document.write(arr[7]+"<br/>")//輸出:**

document.write(arr[2]+"<br/>")//輸出:***

document.write(arr[4]+"<br/>")//輸出:****

其實這樣的代碼就可以按要求打印結(jié)果,不過樓上的各種回答加上了判斷機制,一是判斷有沒有超出數(shù)組長度,二是判斷打印的結(jié)果是不是*。

0 回復(fù) 有任何疑惑可以回復(fù)我~
var?arr?=?['*','##',"***","&&","****","##*"];
?arr[7]?=?"**";
???//先除去arr數(shù)組中不是*的元素
?for(var?i=0;i<arr.length;i++){
????if(arr[i]!=undefined){//如果arr[i]不是空值(即未賦值),則使用split函數(shù)按參數(shù)將字符串切分,返回子串?dāng)?shù)組;如果參數(shù)是"",則將字符串切分成單個字母
????????var?myarr=arr[i].split("");
????????for(var?j=0;j<myarr.length;j++){//檢測myarr是不是全是*
????????????if(myarr[j]!='*'){//如果不是myarr不全是*則刪除
????????????arr.splice(i,1);
????????????i--;//由于每次刪除length的值都會減一,那么則會使每次刪除元素的后一個元素得不到檢測
????????????break;
????????????}
????????}
????}
????else
????????arr.splice(i,1);
???}
//按*得數(shù)目對arr進(jìn)行排序,使用sort函數(shù),首先實現(xiàn)比較函數(shù),以便規(guī)定排序規(guī)則;
//比較函數(shù)可以獨立書寫,也可以寫在sort的括號中
//比較函數(shù):有兩個參數(shù)a,b;如果返回值為負(fù)數(shù),a排列在b的前面;返回0位置不變;否則排列在b后面
function?regular(a,b){
????if(a.length<b.length)
????????return?-1;
????if(a.length>b.length)
????????return?1;
????else
????????return?0;
}
//上述函數(shù)可以改寫為下面的簡寫形式
/*function?regular(a,b){
????return?a.length-b.length;
}*/
arr.sort(regular);
//循環(huán)輸出arr
?for(var?j=0;j<arr.length;j++){
????document.write(arr[j]+"<br>");
?}

注釋得應(yīng)該可以看懂

2 回復(fù) 有任何疑惑可以回復(fù)我~

樓上正解

0 回復(fù) 有任何疑惑可以回復(fù)我~

這個代碼其實有一個bug,在刪除數(shù)組其中一個元素之后會改變數(shù)組的長度,導(dǎo)致for循環(huán)出錯

建議在arr.splice(i,1); 與break;中添加一句i--;

讓當(dāng)前的index減一

假如刪除數(shù)組index=3的位置,就再次從3開始下一次判斷

1 回復(fù) 有任何疑惑可以回復(fù)我~

split 分割字符串返回數(shù)組? splice刪除數(shù)組制定位置開始指定長度的的的元素

0 回復(fù) 有任何疑惑可以回復(fù)我~

根本沒有必要這么復(fù)雜!我的處理:

document.write(arr[0]+"<br/>") //輸出:*

document.write(arr[7]+"<br/>")//輸出:**

document.write(arr[2]+"<br/>")//輸出:***

document.write(arr[4]+"<br/>")//輸出:****

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

風(fēng)早君418 提問者

我只是想看懂他的原理
2016-07-06 回復(fù) 有任何疑惑可以回復(fù)我~

我也是懵懵懂懂的,需要自己多看幾遍就理解了

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

有沒有人來解釋一下這些代碼?這節(jié)實在看不懂啊

我要回答 關(guān)注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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