亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Javascript代碼的小小疑問

Javascript代碼的小小疑問

胡子哥哥 2018-08-07 06:05:59
function fn(num){    let _keyArr = ['A','B','C','D','K','Y'];    let _valArr = num.toString().split('');    let _obj = {};    for(let i = 0,l = _keyArr.length; i<l;i++){        //console.log(_keyArr[i]);         for(let j = 0, l = _valArr.length; j<l;j++){            //console.log(_valArr[j]);             _obj[_keyArr[i]] = _valArr[j];         }     }   console.log(_obj); }; fn(532694);  //為何值都是 “4”??
查看完整描述

1 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

一次循環就行,第二個循環里,因為尾數是4,4總會覆蓋之前的值,想要一一對應有兩者做法:

1.只用一個循環

function fn(num){
   let _keyArr = ['A','B','C','D','K','Y'];
   let _valArr = num.toString().split('');
   let _obj = {};    for(let i = 0,l = _keyArr.length; i<l;i++){
        _obj[_keyArr[i]] = _valArr[i];

    }
  console.log(_obj);
};

fn(532694);

2.第二個循環里判斷一下索引是否一對一

function fn(num){
   let _keyArr = ['A','B','C','D','K','Y'];
   let _valArr = num.toString().split('');
   let _obj = {};    for(let i = 0,l = _keyArr.length; i<l;i++){        //console.log(_keyArr[i]);
        for(let j = 0, l = _valArr.length; j<l;j++){            if(i==j){
               _obj[_keyArr[i]] = _valArr[j];
            }
            

        }

    }
  console.log(_obj);
};

fn(532694);

其實一次就可以了,之所以給出第二個方法是想表達只有在索引是一對一的情況下才是你想要的結果,如果沒有 i==j,那么在第二個循環里最后的4始終會覆蓋前面的值,這就是為什么值都是4的原因。加個判斷,或者,就用一個循環,索引都是i 即可。


查看完整回答
反對 回復 2018-09-09
  • 1 回答
  • 0 關注
  • 619 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號