再ソートする配列、繰り返し回数、二つの配列の重複排除に二つの配列

<!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>

  

おすすめ

転載: www.cnblogs.com/binmengxue/p/10948685.html