ホームページ ウェブフロントエンド jsチュートリアル jsの配列と文字列の一般的なメソッドのまとめ

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

Jan 14, 2017 am 11:37 AM

最近は配列や文字列から始めて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中文网!

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

Javaのコレクションフレームワークを効果的に使用するにはどうすればよいですか? Javaのコレクションフレームワークを効果的に使用するにはどうすればよいですか? Mar 13, 2025 pm 12:28 PM

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

chart.js:パイ、ドーナツ、バブルチャートを始めます chart.js:パイ、ドーナツ、バブルチャートを始めます Mar 15, 2025 am 09:19 AM

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

See all articles