JavaScript——内蔵対象(String,Aray)

47281 ワード

記事の目次
  • Arayオブジェクト
  • ケース
  • 基本包装タイプ
  • Stringオブジェクト
  • ケース
  • Arayオブジェクト
  • 配列オブジェクトを作成する2つの方法
  • 字面量方式
  • new Aray()
  • // 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);
    
  • は、オブジェクトが配列であるかどうかを検出する.
  • instanceof
  • Aray.isAray()HTML 5で提供される方法には、互換性の問題があります.
    関数のパラメータは、要求が行列であれば、このように判断することができます.
  • toString()/valueOf()
  • toString()は、配列を文字列に変換し、カンマ区切り
  • valueOf()は、配列オブジェクト自体
  • に戻る.
  • 配列の一般的な方法のデモ:push()、shift()、unshift()、reverse()、sort()、splice()、indexOf()
  • // 1    (    )
    push()
    pop() 		//          ,  length  
    // 2     (    )
    push()
    shift()		//           ,  length  
    unshift() 	//         ,       
    // 3     
    reverse()	//    
    sort(); 	//     sort      ,      
    //     sort      ?
    // 4     
    concat()  	//          
    slice() 	//              ,        ,  start 0  ,end 1  
    splice()	//              ,  start, deleteCount, options(      )
    // 5     
    indexOf()、lastIndexOf()   //       -1
    // 6             (  )
    every()、filter()、forEach()、map()、some()
    // 7                    。
    join()
    
  • クリア配列
  • //   1    
    arr = [];
    //   2 
    arr.length = 0;
    //   3
    arr.splice(0, arr.length);
    
    ケース
  • は、一つの文字列配列を124分割の形で出力します.例えば、「劉備𞓜張飛𞓜関羽」です.2つの方法を使用して
  • を実現する.
    function myJoin(array, seperator) {
      seperator = seperator || ',';
      array = array || [];
      if (array.length == 0){
        return '';
      }
      var str = array[0];
      for (var i = 1; i < array.length; i++) {
        str += seperator + array[i];
      }
      return str;
    }
    var array = [6, 3, 5, 6, 7, 8, 0];
    console.log(myJoin(array, '-'));
    
    console.log(array.join('-'))
    
  • は、文字列配列の要素の順序を反転させる.[a]、「b」、「c」、「d」->「d」、「c」、「b」、「a」.二つの方法で実現する.ヒント:i番目とlength-i-1個を交換する
  • function myReverse(arr) {
      if (!arr || arr.length == 0) {
        return [];
      }
      for (var i = 0; i < arr.length / 2; i++) {
        var tmp = arr[i];
        arr[i] = arr[this.length - i - 1];
        arr[arr.length - i - 1] = tmp;
      }
      return arr;
    }
    
    var array = ['a', 'b', 'c'];
    console.log(myReverse(array));
    
    console.log(array.reverse());
    
  • 給与の行列[1500,1200,2000,2100,1800]は、2000を超える給与を
  • から削除します.
    //   1
    var array =  [1500,1200,2000,2100,1800];
    var tmpArray = [];
    for (var i = 0; i < array.length; i++) {
      if(array[i] < 2000) {
        tmpArray.push(array[i]);
      }
    }
    console.log(tmpArray);
    //   2
    var array =  [1500, 1200, 2000, 2100, 1800];
    array = array.filter(function (item, index) {
      if (item < 2000) {
        return true;
      }
      return false;
    });
    console.log(array);
    
  • [c]、「a」、「z」、「a」、「x」、「a」の配列のそれぞれのaが現れる位置
  • を見つけました.
    var array =  ['c', 'a', 'z', 'a', 'x', 'a'];
    do {
      var index = array.indexOf('a',index + 1);
      if (index != -1){
        console.log(index);
      }
    } while (index > 0);
    
  • 編纂方法は、1つの配列の重複要素を除去する
  • である.
    var array =  ['c', 'a', 'z', 'a', 'x', 'a'];
    function clear() {
      var o = {};
      for (var i = 0; i < array.length; i++) {
        var item = array[i];
        if (o[item]) {
          o[item]++;
        }else{
          o[item] = 1;
        }
      }
      var tmpArray = [];
      for(var key in o) {
        if (o[key] == 1) {
          tmpArray.push(key);
        }else{
          if(tmpArray.indexOf(key) == -1){
            tmpArray.push(key);
          }
        }
      }
      returm tmpArray;
    }
    
    console.log(clear(array));
    
    基本包装の種類
    基本データタイプの操作を容易にするために、JavaScriptは三つの特別な引用タイプを提供しています.String/Number/Boolean
    //        ?
    // 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;
    
    //            
    var num = 18;  				//  ,    
    var num = Number('18'); 	//    
    var num = new Number(18); 	//      ,  
    // Number Boolean          ,           。  :
    var b1 = new Boolean(false);
    var b2 = b1 && true;		//      
    
    Stringオブジェクト
    String-->は対象文字列を文字の配列として見ても良いですが、jsには文字タイプの文字がなくて一つの文字であり、他の言語では文字は一対のシングル引用符で囲まれています.jsには文字列はシングル引用符を使ってもいいし、ダブル引用符は文字列が配列として見られますので、forループで巡回してみてもいいです.
    文字列の特性:不変性ではなく、文字列の値は変更できません.
    文字列の値が変化しているように見えるのは、指し示しが変わったからであり、本当の値が変わったわけではない.
  • 文字列の可変
  • var str = 'abc';
    str = 'hello';
    //     str     ,  'abc'     ,      
    //         ,           ,             
    //          ,                 
    
  • 文字列オブジェクト
  • を作成します.
    var str = new String('Hello World');
    
    //            
    console.log(str.length);
    
  • 文字列オブジェクトの一般的な方法文字列のすべての方法は、文字列自体を変更しません(文字列は可変ではありません)、動作が完了すると新しい文字列
  • を返します.
    // 1     
    charAt()    	//         
    charCodeAt()  	//          ASCII 
    str[0]   		//HTML5,IE8+    charAt()  
    // 2        
    concat()   		//     ,   +,+   
    slice()    		// start    ,   end  ,end   
    substring() 	// start    ,   end  ,end   
    substr()   		// start    ,  length   
    // 3     
    indexOf()   	//               
    lastIndexOf() 	//     ,        
    // 4        
    trim()  		//            
    // 5        
    to(Locale)UpperCase() 	//    
    to(Locale)LowerCase() 	//    
    // 6   
    search()
    replace()
    split()
    fromCharCode()
    // String.fromCharCode(101, 102, 103);	 // ASCII       
            :
          .length------>      
          .charAt(  ),              ,    ,       
          .fromCharCode(   ,       ),    ASCII     
          .concat(   1,   2,...);              
          .indexOf(      ,          );             ,      -1
          .lastIndexOf(      );     ,              ,      -1
          .replace("      ","     ");        
          .slice(     ,     );    5       ,    10      ,  10.split("       ",        );     
          .substr(     ,  );             
          .substring(     ,     ),         ,            
          .toLocaleLowerCase();   
          .toLowerCase();   
          .toLocaleUpperCase()   
          .toUpperCase();   
          .trim();          
    
    ケース
  • 文字列「私は中華人民共和国を愛しています」の中の「中華」
  • var s = "         ";
    s = s.substr(2,2);
    console.log(s);
    
  • 「abcoefoxyozzopp」は文字列の中のすべてのoが現れる位置を検索します.
    var s = 'abcoefoxyozzopp';
    var array = [];
    do {
      var index = s.indexOf('o', index + 1);
      if (index != -1) {
        array.push(index);
      }
    } while (index > -1);
    console.log(array);
    
  • 文字列のすべてのoを置換します.
  • var s = 'abcoefoxyozzopp';
    do {
      s = s.replace('o', '');
    } while (s.indexOf('o') > -1);
    console.log(s);
    
    console.log(s.replace(/o/ig, ''));
    
  • は、一つの文字列の中で最も多く出現した文字を判断し、この回数を統計する
  • .
    var s = 'abcoefoxyozzopp';
    var o = {};
    
    for (var i = 0; i < s.length; i++) {
      var item = s.charAt(i);
      if (o[item]) {
        o[item] ++;
      }else{
        o[item] = 1;
      }
    }
    
    var max = 0;
    var char ;
    for(var key in o) {
      if (max < o[key]) {
        max = o[key];
        char = key;
      }
    }
    
    console.log(max);
    console.log(char);