<!DOCTYPE HTML> <HTML> <HEAD> <メタ文字コード= "UTF-8"> <タイトル> </ TITLE> </ HEAD> <BODY> </ BODY> </ HTML> <スクリプト> //数组、冒泡排序、把数组从小到大排序 機能バブルソート(配列){ IF(Object.prototype.toString.call(アレイ).slice(8、-1)=== 'アレイ'){ VAR LEN = Array.lengthと、 温度; 用(VAR i = 0; I <LEN - 1; iは++){ 用(VARのJ = LEN - 1; J> = I; j--){ IF(配列[J] <配列[J - 1]){ TEMP =配列[J]。 アレイ[J] =配列[J - 1]。 アレイ[J - 1] = TEMP。 } } } の配列を返します。 }他{ リターン'配列arrayがありません!'; } }; VARのARR = 23であり、34は、23であり、44は、,. 3 ,. 4 333、444]; はconsole.log(バブルソート(ARR)); //配列、重複除外 固有の機能(ARR){ VARハッシュ= []; のための(VARのI = 0; I <arr.length; I ++){ IF(hash.indexOf(ARR [I])== -1){ hash.push(ARR [I]); } } ハッシュを返す; }; VARのARR2は= [2 ,. 8 ,. 5,0 ,. 5,2 ,. 6 ,. 7,2]; はconsole.log(UNIQUE(ARR2である)); //配列、配列要素に現れる要素の最大数まで、第二の多要素及び多要素第二の数 の関数aryMore(ARR){ VAR I; VAR長= arr.length; VARハッシュ= []; //ハッシュアレイ 用(i = 0; iは<長さを、私は++){ もしハッシュ[ARR [I]] = 1(ハッシュ[[i]はARR]!); // 配列の要素を初期化することは未定義ではありません、未定義++のNaN 3など 他のハッシュ[ARR [I]は] ++; } VAR最大= 0 ; //最大数の VAR MAXV; //最も頻繁素子 VARの第二= 0; //回数第二 のvar secondV; //第二の多要素が表示さ hash.forEach(関数(項目、インデックス) {/ /のforeach関数は、空の要素をスキップし IF(項目> MAX){ SECOND =マックス; secondV = MAXV; 最大=項目; MAXV =指数;元の配列の値を保持するために使用//インデックス }そうであれば(項目>秒) { アイテム= SECOND; secondV =指数; } }); 戻り{ MAX、 MAXV、 SECOND、 secondV }。 } ARR3 = VAR [2、2、2、2 ,. 3 ,. 4 ,. 5 ,. 4 ,. 3 ,. 1 ,. 4 ,. 4、100、100]; はconsole.log(aryMore(ARR3)); //二つの配列を比較し、異なる値が取ら 関数getArrDifferenceを{(ARR1の、ARR2である) (ARR2である)リターンarr1.concat .filter(関数(V、Iは、ARR){ arr.indexOf(V)=== arr.lastIndexOf(V)を返します; }) ; }; VARのARR4 = [0 ,. 1,2 ,. 3 ,. 4 ,. 5]; VARのARR6 = [0、44 ,. 6 ,. 1 ,. 3 ,. 9である]; はconsole.log(getArrDifference(ARR4、ARR6)); / /同じ値を取ることによって、二つの配列を対比 機能getArrEqualを(ARR1の、ARR2である){ せnewArr = []; のため(LET I = 0; I <arr2.length; Iは++){ (LET J = 0; J <ARR1の.LENGTH; J ++){ [J] === ARR2である[I]){ARR1の(IF ARR1 [J]のnewArr.push(); } } } 戻りnewArr; } VARのarr7 = [0 ,. 1,2 ,. 3 ,. 4 ,. 5]; VARのarr8 = [0 ,. 4 ,. 6 ,. 1、33 ,. 9である]; はconsole.log(getArrEqual(arr7、arr8)) ; //二つの配列は、配列が同じ値を除去し、合わせ //二つの配列、重複マージ 関数concatAryを(ARR1は、ARR2である){ //直接VaRのARRを使用していない= ARR1が、ARR1のARRのような参照、改質の両方がそれぞれ影響 ; =()VaRのarr1.concatのARRを //またはコピーする)スライスを(使用、ARR = arr1.sliceのVAR(0) のための(VARのI = 0;私は<arr2.length; Iは++します){ arr.indexOf(ARR2である[I])=== -1 arr.push(ARR2は、[I]である):?0; } 戻りARR; }; VARのarr9 = [0 ,. 1,2 ,. 3 ,. 4 ,. 5]。 ARR10 = VAR [0 ,. 4 ,. 6 ,. 1 ,. 3 ,. 9]; はconsole.log(concatAry(arr9、ARR10)); //複数の配列をマージし、重複排除 関数concatAryMore(ARR1、ARR2、ARR3){ (arguments.lengthをが<= 1){場合に falseを返します。 } VARのconcat_ =関数(ARR1、ARR2){ VAR ARR = arr1.concat()。 (; I <arr2.length; VAR I = 0 I ++){ため arr.indexOf(ARR2 [I])=== -1?arr.push(ARR2 [I]):0。 } ARRを返します。 } VAR結果= concat_(ARR1、ARR2)。 用(VAR I = 2、I <arguments.lengthを、I ++){ 結果= concat_(その結果、引数[I])。 } 戻り値の結果; }。 VAR arrMore1 = [ 'A'、 'B']。 VAR arrMore2 = [ 'A'、 'C'、 'D']。 VAR arrMore3 = [1、 'D'、未定義の、真の、NULL]。 console.log(concatAryMore(arrMore1、arrMore2、arrMore3))。 </ SCRIPT>