フロントエンド学習ノート-JS-内蔵オブジェクト(Array/string)


Arrayオブジェクト
Array
  • 配列オブジェクトを作成する2つの方法
  • 字面量方式
  • new Array()

  • // 1.             
    //         
    var arr = new Array();
    //        ,     3    
    var arr = new Array('zs', 'ls', 'ww');
    //        ,     4   
    var arr = new Array(1, 2, 3, 4);
    ​
    ​
    // 2.            
    var arr = [1, 2, 3];
    ​
    //           
    console.log(arr.length);
  • は、1つのオブジェクトが配列関数のパラメータであるか否かを検出し、1つの配列であることが要求される場合、このように判断することができる
  • instanceof
  • Array.isArray()HTML 5で提供される方法で、互換性の問題がある
  • 
        // instanceof
        // Array.isArray() HTML5      ,      
        var arr = [];
        var obj = {};
        console.log(arr instanceof Array); // true
        console.log(obj instanceof Array); // false
        console.log(Array.isArray(arr)); // true
        console.log(Array.isArray(obj)); // false
    
  • 配列要素の追加/削除
  • push():配列の末尾に1つ以上の要素/unshiftを追加する:配列の先頭に1つ以上の要素
  • を追加する
  • pop():配列の最後の要素/shift()を削除:配列の最初の要素
  • を削除
    
            //           
            // 1. push()                       
            var arr = [1, 2, 3];
            // arr.push(4, 'pink');
            console.log(arr.push(4, 'pink'));
    		console.log(arr);
            // (1) push             
            // (2) push()               
            // (3) push    ,              
            // (4)          
            
    		// 2. unshift()                      
            console.log(arr.unshift('red', 'purple'));
            console.log(arr);
            // (1) unshift              
            // (2) unshift()               
            // (3) unshift    ,              
            // (4)          
    
            // 3. pop()                 
            console.log(arr.pop());
            console.log(arr);
            // (1) pop                           
            // (2) pop()     
            // (3) pop    ,               
            // (4)          
           
    	   // 4. shift()                
            console.log(arr.shift());
            console.log(arr);
            // (1) shift                          
            // (2) shift()     
            // (3) shift    ,               
            // (4)          
        

      
     
  • 配列ソート
  • 反転配列reverse()
  • 配列配列配列配列配列配列(バブル配列)sort()
  •     //      reverse()
        var arr = [1, 9, 7, 32, 93];
        console.log(arr.reverse());
    
        //     (    )sort()                  ,     。                 ,       UTF-16           
        //            ,                 
        var array1 = [1, 30, 4, 21, 100000];
        array1.sort();
        console.log(array1); // expected output: Array [1, 100000, 21, 30, 4]
        array1.sort(function (a, b) {
            // return a-b;        
            return b - a; //        
        });
        console.log(array1); // [100000, 30, 21, 4, 1]
    
    • 数组索引

      • indexOf(数组元素)  作用就是返回该l数组元素的索引号 从前面开始查找 找不到就返回 -1

      • lastIndexOf(数组元素)  作用就是返回该数组元素的索引号 从后面开始查找 找不到就返回 -1

     

    • 数组去重

         //      ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b']             。
            // 1.  :                       ,           ,         。
            // 2.    :        ,                ,                 ,      ,      。
            // 3.             ?       .indexOf(    )       - 1               
    
            function unique(arr) {
                var newArr = [];
                for (var i = 0; i < arr.length; i++) {
                    if (newArr.indexOf(arr[i]) === -1) {
                        newArr.push(arr[i]);
                    }
                }
                return newArr;
            }
            // var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])
            var demo = unique(['blue', 'green', 'blue'])
            console.log(demo);

     
  • 配列を文字列に変換
  • toString()/join(セパレータ)
  •     // toString():         ,       
        var arr=[6,8,7,6,2];
        console.log(arr.toString()); // 6,8,7,6,2
    
        // join('   '):                     
        console.log(arr.join()); //     ,        6,8,7,6,2
        console.log(arr.join('-')); // 6-8-7-6-2

     
  • クリア配列
  • //   1    
    arr = [];
    //   2 
    arr.length = 0;
    //   3
    arr.splice(0, arr.length);

     
    基本パッケージタイプ
    JavaScriptでは、基本データ型の操作を容易にするために、String/Number/Booleanの3つの特別な参照タイプも用意されています.
    //        ?
    // s1     ,          
    var s1 = 'zhangsan';
    var s2 = s1.substring(5);
    ​
    //    s1.substring(5)   ,  s1   String       ,   substring  ,        ,    :
    var s1 = new String('zhangsan');
    var s2 = s1.substring(5);
    s1 = null;

     
    Stringオブジェクト
    String
     
  • 文字列の可変
  • var str = 'abc';
    str = 'hello';
    //     str     ,  'abc'     ,      
    //         ,           ,             
    //          ,                 

     
  • 文字列オブジェクト
  • を作成する
    var str = new String('Hello World');
    ​
    //            
    console.log(str.length);

     
  • 文字列の場所を検索
  • indexOf():文字列の位置を返す前から検索が見つからない場合は-1
  • を返す.
  • lastIndexOf():文字列の位置を返す前から検索が見つからない場合は-1
  • を返す.
         //                  str.indexOf('      ', [     ])
        var str='        ,         ';
        console.log(str.indexOf(' '));
        console.log(str.indexOf(' ',10)); //       10         
        //      "abcoefoxyozzopp"   o         
        //     :      o     
        //      indexOf         -1        
        //   indexOf         ,       ,        1,      
        var str = "oabcoefoxyozzopp";
        var index = str.indexOf('o');
        var num = 0;
        while (index !== -1) {
            console.log(index);
            num++;
            index = str.indexOf('o', index + 1);
        }
        console.log('o      :' + num);

     
  • 文字に従って位置を返す
  • charAt()指定位置の文字
  • を取得する.
  • charCodeAt()指定位置における文字のASCIIコード
  • を取得する.
  • str[]HTML 5,IE 8+サポートとcharAt()等価
  •         //         
            // 1. charAt(index)         
            var str = 'andy';
            console.log(str.charAt(3));
            //        
            for (var i = 0; i < str.length; i++) {
                console.log(str.charAt(i));
            }
            // 2. charCodeAt(index)            ASCII    :            
            console.log(str.charCodeAt(0)); // 97
            // 3. str[index] H5    
            console.log(str[0]); // a

     
  • スペル/切り取り文字列
  • concat('文字列1','文字列2'...)結合文字列
  • substr('切り取りの開始位置','いくつかの文字')切り取り文字列
  •  //        
        // 1. concat('   1','   2'....)
        var str1='    ';
        var str2='   ';
        console.log(str1.concat(str2));
    
        // 2. substr('       ', '      ');
        var  str3= '         ';
        console.log(str3.substr(4, 2)); //4      4         2       

     
  • 文字列置換/回転配列
  • replace('置換文字','置換文字')置換文字最初の文字
  • のみが置換されます.
  • split('セパレータ')文字を配列
  • に変換
        // 1.      replace('      ', '      ')            
        var str1 = '    ';
        console.log(str1.replace('  ', '    ')); //       
        
        // 2.         split('   ')           join          
        var str2 = 'red, pink, blue';
        console.log(str2.split(',')); // ["red", " pink", " blue"]
        var str3 = 'red&pink&blue';
        console.log(str3.split('&')); // ["red", " pink", " blue"]

     
  • の文字列「abcoefoxyozzopp」は、中のすべてのoを*
  • に置き換えることを要求しています.
            var str1 = 'abcoefoxyozzopp';
            while (str1.indexOf('o') !== -1) {
                str1 = str1.replace('o', '*');
            }
            console.log(str1);

     
  • は、1つの文字列の中で最も多く出現する文字を判断し、この回数
  • を統計する.
    //          'abcoefoxyozzopp'           ,      。
            //     :   charAt()        
            //            ,          ,  1,       +1
            //     ,         
            var str = 'abcoefoxyozzopp';
            var o = {};
            for (var i = 0; i < str.length; i++) {
                var chars = str.charAt(i); // chars            
                if (o[chars]) { // o[chars]        
                    o[chars]++;
                } else {
                    o[chars] = 1;
                }
            }
            console.log(o);
            // 2.     
            var max = 0;
            var ch = '';
            for (var k in o) {
                // k        
                // o[k]        
                if (o[k] > max) {
                    max = o[k];
                    ch = k;
                }
            }
            console.log(max);
            console.log('      ' + ch);