review javascript 12:関連配列

2689 ワード

(1)知識点
  • (1.1)作成
  • (1.2)hash配列使用注意点
  • (1.3)利点
  • (1.4)関連配列
  • を巡る
    (2)細分化
    (2.1)作成
    インデックス配列に存在する問題:a.下付きのみで、要素の意味を明確に表すことができないb.要素を正確に検索できない
    hash配列:作成:空の配列を作成し、配列に要素を追加する
    var arr = new Array(); arr[key] = value;
    tips:*keyは文字列**でなければなりません
    (2.2)hash配列使用注意点
    a.関連配列のkeyは繰り返すことができない.b.アクセスが存在しない下付き位置であれば、エラーは報告されず、undefinedが返されます.
    (2.3)メリット
    配列を巡回する必要がなく、データ量に関係なく、迅速かつ正確に検索できます.
    (2.4)関連配列の遍歴
    for(var key in hashArr){//各keyを繰り返し取り出して変数keyに入れ、keyで取得したのは要素の下付き文字名の現在の要素の値のみ:hashArr[key]}
    インデックス配列を巡回することもできますが、開始と終了を制御することはできません.
    tips:**インデックス配列を巡回する限り、通常のforループを選択するには関連配列を巡回するだけで、for inループ**しか使用できません.
    (3)実践
    
    
    
        
            
    
    
    
    
        /**
         * (1)       
         *  a.    ,           
         *  b.        
         *
         * (2)hash  
         *   :       ,         
         * var arr = []
         * var arr = new Array();
         * arr[key] = value;
         * key      
         *
         * (3)hash       
         * a.      key    ,
         * b.                ,    !   undefined
         *
         * (4)      
         *       !     !      !
         */
    
    
        /**
         *     :
         *    0   'a'
         *    1   'b'
         */
        var arr = ['a', 'b'];
    
    
        var arr1 = new Array();
        arr1['name'] = 'phf';
        arr1['age'] = 28;
        arr1['name'] = 'phf2';  //         ,           
    
        console.log(arr1);
        //console.log(arr1[jack]);//Uncaught ReferenceError: jack is not defined
        //          ,    ,   undefined
        console.log(arr1['aa']);//undefined
    
        console.log("----------      ----------");
    
        /**
         *   arr1    key
         */
        for (var key in arr1) {
            console.log("key:" + key);
            console.log("value:" + arr1[key]);
            console.log("*****")
        }
    
        console.log("----------      ----------");
    
        /**
         *   :
         *          N,
         * (1)    0 N      
         * (2)          
         *
         *    (1) (2)   ,  hash    
         * (1) key:evenArray
         * (2) key:oddTotalVal
         *
         */
        init();
        function init() {
            endNum(5);
            endNum(-1);
            endNum('a');
        }
        function endNum(n) {
            var evenArray = [];
            var oddTotalVal = 0;
            //            ,     0
            if ((typeof n == 'number') && n > 0) {
                for (var i = 0; i < n; i++) {
                    if (i % 2 == 0) {
                        evenArray.push(i);
                    } else {
                        oddTotalVal += i;
                    }
                }
                console.log(evenArray);
                console.log(oddTotalVal);
            }else{
                console.log("n is invalid")
            }
        }