基本的な問題のJSのいくつかのアルゴリズム。他のブログからの転載。

1、文字列を反転

コードをコピー
 
例としては、(必須:まずメソッドの助剤はアレイのアレイ反転順序を逆にし、文字列配列に変換され、最後に文字列に配列)

関数ReverseString(STR){ 
  STR = str.split(「」)リバース().. (「」)に参加、
  STRを返す; 
} 
ReverseString(「こんにちは」); 
配列に文字列を変換する//スプリット方法
配列の順序逆転の//リバース方法
// join 文字列に配列する方法を
 
コードをコピー

 

図2に示すように、計算された整数階乗

コードをコピー
例(整数の階乗を表すためにNを使用すると、すべてのn以下の整数の積を表す場合、一般的にNと略記階乗;例えば:。!! 5 = 1 * 2 * 3 * 4 * 5 = 120)が
必要です。 1.返すべき 関数factorialize(NUM){ IF(NUM <1){ 。;リターン1 } {他 、factorialize NUM *返す(1-NUMを。) } } factorialize(5);factorialize(0)
 
コードをコピー

 

図3に示すように、指定された文字列は、戻り回文であればtrue、そうでない場合は、リターンしますfalse

コードをコピー
 
文字列は、句読点、大文字とスペースを無視する場合は、読み取りの反対で、まったく同じを読んで、その文字列が回文(回文)です。
その文字列を注意し、余分なスペースや句読点を削除し、文字列が回文であることを確認するために、小文字の文字列に変換する必要があります。

パリンドローム関数(STR){ 
  ASTR str.replace =(/ [0-9A-ZA-Z ^] / G '')toLowerCaseメソッド();. 
  .. astr.split BSTR =( "")リバース()(参加""); 
  IF(ASTR === BSTR){ 
    trueに復帰; 
  }他{ 
    falseに復帰; 
  } 
} 
回文( "アイ"); 

//また、正規表現である:
ASTRのstr.replace =(/ [\ | !\〜| \ `| \ | \ @ | \#| \ $ | \%| \ ^ | \&| \ * | \(| \)| \ - | \ _ | \ + | \ = | \ | | \\ | \ [| \] | \ {| \} | \; | \ | \ "|?\「| \ | \ <|。\ | \> | \ / | \] / gであり、" 「).toLowerCase();
 
コードをコピー

 

4提供最長の文の単語を見つけるために、その長さを算出します。

注意:関数の戻り値が数値でなければなりません。

コードをコピー
 
findLongestWord関数(STR)は{ 
//配列に変換
  するvar ASTRのstr.split =(「」); 
//各配列要素の文字列の長さが比較され、文字列配列の長さに応じて大から小順に配置されています。
  astr.sort BSTR = VAR(関数(A、B){ 
    a.lengthしてb.lengthから戻る; 
  }); 
//最初の配列要素(文字列、すなわち最大長さ)を除去
  VAR lenMax BSTR = [0 ] .LENGTH; 
//長さの値を返し
  、戻りlenMax 
} 

findLongestWord(「ブラウンフォックスのクイック怠惰な犬を飛び越えた」); 

//結果:6
 
コードをコピー

 

図5は、文字列の各単語の最初の文字は、残りの小文字を大文字にすることを確実にします。

コードをコピー
 
機能タイトルケース(STR){ 
  VARのASTR = str.toLowerCase()スプリット(」「)。
  ため(VAR i = 0; iはastr.lengthを<; iは++){ 
    ASTR [I] = ASTR [I] [0] .toUpperCase()+ ASTR [I] .substring(1、ASTR [I] .LENGTH)。
  } 
  VAR列= astr.join(」「)。
  文字列を返します。
} 
タイトルケース(「私はちょっとお茶のポットです」); 

//结果:私はリトルティーポットよ
 
コードをコピー

 

図6に示すように、右の大きなアレイは、それぞれ4つの小さな配列を含有する、小さな最大の各々は、配列中に見出され、新しいアレイを形成し、それらを一緒に置きます。

コードをコピー
 
関数largestOfFour(ARR){ 
  VAR newArr = []; 
  用(i = 0; I <arr.length; iは++){ 
    ARR [I] .sort(関数(B){ 
      戻りBA; 
    }); 
    
    newArr.push([0] [i]のARR)。
  } 
    戻りnewArr。

} 
largestOfFour([[4、5、1、3]、[13、27、18、26]、[32、35、37、39]、[1000、1001、857、1]])。
 
コードをコピー

 

7、チェック文字列(str)の場合(指定した文字列target末尾に)。

   もしそうなら、それはtrueを返し、そうでない場合は、falseを返します。

コードをコピー
 
confirmEnding関数(STR、ターゲット){ 
  VAR LEN = target.length; 
  VAR = ASTRのstr.substr(-len); 
  IF(ASTR ===ターゲット){ 
    trueに戻り; 
  }そう{ 
    falseに戻り; 
  } 
} 
confirmEnding(「バスティアン「」N- "); 

//構文:SUBSTR()メソッドを起動するために指定位置から指定した長さの文字列の部分文字列を返します
  str.slice(beginSlice【、endSlice])。
 
コードをコピー

 

8、繰り返し文字列が指定された  num場合は、時間をnum負の戻り空の文字列。

コードをコピー
 
REPEAT関数(STR、NUM){ 
  VARのSTR = ASTR; 
  // strの初期値はASTRに割り当てられる
  IF(NUM <0){ 
    ;リターン"" 
  }他{ 
    用(VARのI = 0; I <-num 1。 ++ I){ 
    //インデックスはインデックスサイクルNUM-1回、0から始まり、
      ; STR + = ASTR 
    //毎サイクル、加えて初期値STR 
    } 
    ;戻りSTR 
  } 
} 

,. REPEAT( "ABC" 3); 

//結果:ABCABCABC
 
コードをコピー

 

図9は、文字列をカット!

    指定されたよりも文字列パラメータの長さならばnum長さ、不要な部分を入れて...表現しています。

    三点は、文字列の長さに含まれる文字列番号の末尾に挿入され、覚えています。

    しかし、指定されたパラメータがあれば、num3以下である、3つのドットの添加は、文字列の長さには含まれないであろう。

コードをコピー
 
関数TRUNCATE(STR、NUM){ 
  VARのLEN = str.length。
  VaRのASTR = str.slice(0、NUM-3)。
  VaRのBSTR = str.slice(0、NUM)。
  (LEN> NUM){もし
    あれば(NUM <= 3){ 
      戻りBSTR + '...'。
    }他{ 
      戻りASTR + '...'; 
    } 
  }他{ 
    戻りSTR。
  } 
} 

TRUNCATE( "A-tisket-tasket緑色と黄色のバスケット"、11); 
//结果:A-tisket ...
//構文を使用します。slice()文字列の一部を抽出し、新しい文字列を返します。
  str.slice(beginSlice【、endSlice])。
 
コードをコピー
 

図10に示すように、アレイのarr配列の指定されたサイズに応じてsizeいくつかのアレイブロックに分割されます。

たとえば、次のチャンク([1,2,3,4]、2)= [1,2]、[3,4]、
チャンク([1,2,3,4,5]、2)= [ 1,2]、[3,4]、[5]。

コードをコピー
 
関数チャンク(ARR、サイズ){ 
  VAR newarr = [];
  用(VAR i = 0; I <arr.length; I + =サイズ){
    VAR BRR = arr.slice(iは、iはサイズ+)。
    newarr.push(BRR)。
  }
  戻りnewarr。
}

チャンク([ "A"、 "B"、 "C"、 "D"]、2)。
 
コードをコピー

 

11は、切り捨ての配列戻りnさらなる要素の後に残りの要素を、切り捨ては、インデックス0から始まります。

コードをコピー
 
スラッシャー関数(ARR、howManyが){ 
  VAR LEN = arr.length; 
    IF(howManyが=== 0){ 
      戻りARR; 
    }そうでなければ{ 
      戻りarr.splice(howManyが、LEN); 
戻り値が削除される// } } スラッシャー([1、2、3]、2);
//結果:[3]

// splice()配列の内容を変更するために、新たな要素と古い要素を交換する方法。
 语法:arrayObject.splice(インデックス、howManyが、ITEM1、.....、itemX)

  パラメータ

start​: 配列からどちらが内容を変更することを開始します。あなたは、コンテンツを追加し、配列開始の端から、配列の長さを超えた場合、それが負の場合、それは最後の1の初めから、いくつかの配列の最初を意味しています。
deleteCount: 除去される配列要素の数を表す整数。場合は  deleteCount  0である、要素が取り除かれなかっ。この場合、少なくともあなたは、新しい要素を追加する必要があります。もし  deleteCount  より大きい start  から、次の要素の総数  start  要素の背面には、(第一含む削除される  start  場所)。
itemN: 配列に要素を追加します。指定しない場合、  splice()  配列要素のみを削除します。

  戻り値:構図を削除する要素の配列。あなたは、配列の要素は1つだけ含まれている削除した場合のみ、一つの要素が返されます。あなたは要素を削除しない場合は、空の配列が返されます。

 
 
 
コードをコピー

 

最初の配列要素は、すべての要素の第2の文字列の文字列が含まれている場合12は、この関数は真を返します。

    たとえば、["hello", "Hello"]ケースを無視した場合には、2番目の文字列の文字のすべてが、最初の文字列で見つけることができますので、それは、trueを返す必要があります。

コードをコピー
 
変異関数(ARR){ 
  VARのASTR ARR = [0] .toLowerCase(); 
  VARのBSTRのARR = .toLowerCase()[1]; 
  (; Iはbstr.lengthを<; VAR I = 0 Iは++)のために{ 
    (ASTR IF。 indexOf(BSTR [I])== -1){ 
      falseに復帰; 
    }他{ 
      trueに復帰; 
    } 
  } 
} 

突然変異([ "こんにちは"、 "ちょっと"]); 
//結果は:trueに

// indexOf() メソッド指定された値を返します。文字列オブジェクトの最初の発生の位置。 fromIndex 始まり場所を見つけるために、そうでない場合、-1が返されます。
stringObject.indexOf(searchvalue、fromIndexの)

パラメータ

searchValue: 値の文字列表現が求められています。
fromIndex: この方法は、検索を開始呼び出しの位置を示すオプションの文字列。これは、任意の整数を指定できます。デフォルト値は0です。場合は  fromIndex < 0 (0に通過する)文字列全体を検索します。場合は  fromIndex >= str.length、この方法は-1を返し、検索文字列がnull文字列である場合を除き、その後、str.lengthを返します。

大文字と小文字を区別  indexOf する方法は、大文字と小文字が区別されます。たとえば、次の式-1:

"シロナガスクジラ" .indexOf( "青")を返します// -1

文字列は、文字列は他に存在するかどうかを検出した文字列があるかどうかを検出することは、次のメソッドを使用します。

"シロナガスクジラ" .indexOf( "ブルー")== -1!。//真の
"シロナガスクジラ" .indexOf( "Bloe")== -1!。//偽
 
コードをコピー

 

13、アレイを削除するには、すべての偽の値。

   JavaScriptでは、偽の値はfalsenull0""undefined と  NaN

Ctrl + Cを押してコードをコピーします
Ctrl + Cを押してコードをコピーします

 

 

読書の後、あなたは自信を持っている場合、あなたは自分自身に挑戦することができます。

http://www.w3cschool.cn/codecamp/list?ccid=8

おすすめ

転載: www.cnblogs.com/devanwu/p/10955735.html