jsの配列と文字列の一般的なメソッドのまとめ

高洛峰
リリース: 2017-01-14 11:37:14
オリジナル
1125 人が閲覧しました

最近は配列や文字列から始めてjsの基礎を整理中です。

string 一般的なメソッド:

1.substring (start 開始位置インデックス、end 終了位置インデックス) インターセプト位置には終了位置文字は含まれません。開始位置から末尾までインターセプトするパラメーターを 1 つ記述するだけです

var str='abcdefg'; 
str.substring(1) //得到bcdefg  str.substring(1,3) //得到bc
ログイン後にコピー

input 値が負の場合、負の値を 0 に変更し、小さい方を開始位置として使用します

str.substing(-1,1) =>str.substring(0,1) //a
str .substring(1,-2 ) =>str.substring(0,1) //a

2.slice(start 開始位置インデックス, end 終了位置インデックス) は基本的に substring と似ていますが、違いはパラメータです。は負の数です。

var str='abcdefg';
str.slice(1)  //bcdefg      str.substring(1,3) // bc
ログイン後にコピー

負の値を入力すると、その値が文字列の長さに加算されます

str.slice(-1) =>str.slice(6) //g
str.slice(1,- 2) => ;str.slice(1,5) //bcde
str.slice(-2,-1)=>str.slice(5,6) //f

の絶対値が大きい場合文字列の長さよりも大きい場合は0になります

str.slice(-22) =>str.substring(0) //abcdefg

第2パラメータの絶対値が文字列の長さより大きい場合、 return ''

3.substr(start 開始位置のインデックス、end が返す必要がある文字数)

var str='abcdefg';
str.substr(1) //bcdefg      str.substr(1,1) //b
ログイン後にコピー

負の値が入力された場合、start パラメータは end の文字列の長さに追加されます。が負の場合、パラメータは 0 になります

str.substr(-1) =>str.substr(6)//g        
str.substr(-2,-3) // ''
ログイン後にコピー

4.charAt(index) メソッドは、指定されたインデックス位置の文字を返します。インデックス値が有効な範囲 (0 と文字列の長さから 1 を引いたもの) を超える場合は、空の文字列が返されます。

var str='abcdefg';
str.charAt(2) // c
ログイン後にコピー

5.index(string) 文字列内で最初に出現した部分文字列の位置を返します。物体。部分文字列が見つからない場合は、-1 が返されます。

var str='abcdefga' str.indexOf('a') // 0 str.indexOf('h') //-1

6.lastIndexOf(string) フラッシュバック検索

は文字列内の最初の時間を返しますobject 部分文字列が出現する位置。部分文字列が見つからない場合は、-1 が返されます。

var str='abcdefga' str.lastIndexOf('a') // 7

7.split(str) パラメータに基づいて文字列を配列に分割します

var str='abcadeafg' str.split('a' ) //["", "bc", "de", "fg"]

8. toLowerCase メソッドは、文字列内の文字を小文字に変換した文字列を返します。

9. toUpperCase メソッドは、すべての文字を大文字に変換した文字列を返します。

10.match() – メソッドは、文字列内の指定された値を取得したり、1 つ以上の正規表現の一致を検索したりできます。

11.search メソッドは、正規表現の検索コンテンツの位置に一致する最初の文字列を返します。

12.replace は、正規表現に一致する文字列を検索し、新しい文字列を使用して一致を置換するために使用されます

http://www.cnblogs.com/bijiapo/p/5451924.html

一般的に使用される方法配列の場合

1. 末尾に追加 追加した配列を返す

2. unshift 追加した配列を返す

3. Shift 削除(先頭から) 処理済みの配列を返す

4. last item 処理された配列を返します

5. 配列の反転 処理された配列を返します

6. 配列を文字列に変換します

var arr=[1,2,3,4,5], str=arr.join('--');
 console.log(str); // 1--2--3--4--5 以join内的参数切割数组
 console.log(arr); // [1,2,3,4,5]  原数组未变
ログイン後にコピー

7. 配列を start (開始) からインターセプトしますend (末尾は含まれません) 回 新しい配列に戻り、元の配列は変更されません

var arr=[1,2,3,4,5],new=arr.slice(2,4);
console.log(new);  // [3,4]
console.log(arr);  // [1,2,3,4,5]
ログイン後にコピー
E

8. Concat 配列がマージされます

9. 1 つのパラメーターをインターセプトし、パラメーターの位置から負の数を埋めます。上記の str スライス インターセプトされた配列の元の配列の変更を返します

var arr=[1,2,3,4,5];
console.log(arr.splice(1));  // [2,3,4,5]
console.log(arr);       // [1]
console.lgo(arr.splice(-1))  // [5]
ログイン後にコピー

(2)。 2 つのパラメーター インターセプト (開始位置、数値) インターセプトされた配列の元の配列の変更を返します

var arr=[1,2,3,4,5];
console.log(arr.splice(1,3)); // [2,3,4]
console.log(arr)       // [1,5]
arr.splice(0,1) =>arr.shift()
arr.splcie(arr.length-1,1) =>arr.pop()
ログイン後にコピー

( 3) 元の配列を追加し、

var arr=[1,2,3,4,5];
console.log(arr.splice(1,0,13)); // []
console.log(arr);        // [1,13,2,3,4,5]
ログイン後にコピー

を追加します (4)。

var arr=[1,2,3,4,5];
console.log(arr.splice(1,2,'a','b')) // [2,3]
console.log(arr);        // [1,'a','b',4,5]
arr.splice(0,0,1) =>arr.unshift(1);
arr.splice(arr.length,0,1) => arr.push(1)
ログイン後にコピー

を置き換えます。 10. arr.forEach(item,index,array){} トラバーサル、jquery の each と同様のループです

は配列の内容、index はそのインデックス、array は配列そのものを表します

var arr=[1,2,3,4,5];
      arr.forEach(function(item,index,array){
      })
ログイン後にコピー

ネストされたループから抜け出すときに問題があり、まだ解決されていません

11. map メソッド マッピングの使用法。 12. arr.sort ソート

var men=[
       {'name':1,'age':12},
       {'name':2,'age':22},
       {'name':3,'age':33}
   ],
   age=men.map(function(item){
       return item.age;
   })
ログイン後にコピー

デフォルトでは、sort メソッドは私たちが考えているような数値順ではなく、ASCII アルファベット順でソートします

arr.sort(function(a,b){ return a-b})

a-b从小到大 b-a从大到小

13. 顺便写写我知道的排序方法

(1)冒泡排序 每次比较相邻的两个数,如果后一个数比前一个数小,换位置

function bSort(arr){
    var tmp;
    for(var i=0,len=arr.length-1;i<len;i++){
      for(var j=0;j<len;j++){
        if(arr[j]>arr[j+1]){
          //换位置
          tmp=arr[j+1];
          arr[j+1]=arr[j];
          arr[j]=tmp;
        }
      }
    }
    return arr;
  }
  function bSort(arr){
    var tmp;
    arr.forEach(function(item,i){
      arr.forEach(function(item,i){
        if(item>arr[i+1]){
          //换位置
          tmp = arr[i + 1];
          arr[i + 1] = arr[i];
          arr[i] = tmp;
        }
      })
    })
    return arr
  }
ログイン後にコピー


(2)快速排序 二分法,找到中间的数,取出来(新数组),原数组没,每次和此数比较,小的放到左边,大的放到右面

function fastSoft(arr){
       var len=arr.length;
       if(len<=1){ return arr}
       var  cIndex=Math.floor(len/2),
          c=arr.splice(c,1),
          left=[],
          right=[];
       arr.forEach(function(item,i){
           if(item<c[0]){
           left.push(item);
         }else{
           right.push(item);
         }
       })
    return fastSoft(left).concat(c,fastSoft(right));
  }
ログイン後にコピー

14. 数组的去重也写下吧

(1)双层循环不是很好

var arr=[2,3,2,2,2,4,5],
      arr2=[];
        function find(arr2,ele){
         for(var i= 0,len=arr2.length;i<len;i++){
           if(arr2[i]==ele) return true;
         }
          return false;
        }
        for(var i= 0,len=arr.length;i<len;i++){
          if(!find(arr2,arr[i])){
            arr2.push(arr[i]);
          }
        }
ログイン後にコピー

(2)利用json的key值无重复

var arr=[2,3,2,2,2,4,5],
        json={},
        arr2=[];
          arr.forEach(function(item,i){
            if(!json[item]){
              json[item]=222;
            }
          });
          for(var name in json){
            arr2.push(Number(name));//类型发生变化了
          }
ログイン後にコピー

(3) 利用sort方法排序,去掉旁边相同项

var arr=[2,3,2,4,4,4,5],
   arr2=[];
     arr.sort();
     for(var i=0;i<arr.length;i++){
       if(arr[i]==arr[i+1]){
         arr.splice(i--,1);
       }
     }
ログイン後にコピー


一些常见数学方法

    math.abs() 取绝对值  math.ceil() 向上取整 math.floor() 向下取整
    math.round() 四舍五入 math.roundom
function getRan(n,m){
  return Math.floor(Math.random()*(m-n)+n);
}
ログイン後にコピー

数组和字符串的一些综合应用

1. 截取后缀名

(1) var str='1.xxx.avi';

str=str.substring(str.lastIndexOf('.')+1);

(2) var str='1.xxx.avi';

var arr=str.split(&#39;.&#39;);
console.log(arr[arr.length-1]);
ログイン後にコピー

2.字母翻转,首字母大写

var str=&#39;wo shi yi ge demo&#39;,
   arr=str.split(&#39; &#39;);
   for(var i=0;i<arr.length;i++){
     console.log()
    arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substring(1);
   }
   arr.reverse();
   str=arr.join(&#39; &#39;);
ログイン後にコピー

3. str中字符出现次数的统计

var str=&#39;aaaandkdffsfsdfsfssq12345&#39;,
   json={},
   n= 0,
   sName;
   for(var i= 0,len=str.length;i<len;i++){
     var Letter=str.charAt(i);
     //统计次数
     if(json[Letter]){
       json[Letter]++;
     }else{
       json[Letter]=1;
     }
   }
   //找最大
   for(var name in json){
     if(json[name]>n){
       n=json[name];
       sName=name;
     }
   }
   console.log(&#39;出现最多的字母&#39;+sName+&#39;次数为&#39;+n);
ログイン後にコピー

4. 简单的url参数解析

function getData() {
        var search = window.location.search.substring(1);
        if (!search) {
          return;
        }
        var arr = search.split(&#39;&&#39;),
            arr2 = [],
            json = {},
            key,
            alue;
        for (var i = 0; i < arr.length; i++) {
          arr2 = arr[i].split(&#39;=&#39;);
          key = arr2[0];
          value = arr2[1];
          json[key] = value;
        }
        return json;
       }
ログイン後にコピー

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持PHP中文网!

更多js数组与字符串常用方法总结相关文章请关注PHP中文网!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!