1. 程式人生 > >JS合併多個數組去重演算法

JS合併多個數組去重演算法

var arr1 = ['a','b'];
var arr2 = ['a','c','d'];
var arr3 = [1,'d',undefined,true,null];

//合併兩個陣列,去重
var concat_ = function(arr1,arr2){
	//不要直接使用var arr = arr1,這樣arr只是arr1的一個引用,兩者的修改會互相影響
	var arr = arr1.concat();
	//或者使用slice()複製,var arr = arr1.slice(0)
	for(var i=0;i<arr2.length;i++){
		arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
	}
	return arr;
}

//合併多個數組,去重
var concat = function(arr1,arr2,arr3){
	if(arguments.length <= 1){
		return false;
	}
	var concat_ = function(arr1,arr2){
		var arr = arr1.concat();
		for(var i=0;i<arr2.length;i++){
			arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
		}
		return arr;
	}
	var result = concat_(arr1,arr2);
	for(var i=2;i<arguments.length;i++){
		result = concat_(result,arguments[i]);
	}
	return result;
}

//合併多個數組,去重,排序
var arr1 = [1,6,4,0];
var arr2 = [8,20,7,4.5];
var arr3 = [6,0,7,90,2];

var concat = function(arr1,arr2,arr3){
	if(arguments.length <= 1){
		return false;
	}
	var concat_ = function(arr1,arr2){
		var arr = arr1.concat();
		for(var i=0;i<arr2.length;i++){
			arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
		}
		return arr;
	}
	var result = concat_(arr1,arr2);
	for(var i=2;i<arguments.length;i++){
		result = concat_(result,arguments[i]);
	}
	//排序
	function sortNumber(a,b){
		return a - b;
	}
	return result.sort(sortNumber);
}

相關推薦

JS合併個數演算法

var arr1 = ['a','b']; var arr2 = ['a','c','d']; var arr3 = [1,'d',undefined,true,null]; //合併兩個陣列,去重 var concat_ = function(arr1,arr2){

js合併個數(整理)

var arr1 = ['a','b']; var arr2 = ['a','c','d']; var arr3 = [1,'d',undefined,true,null]; //合併兩個陣列,去重 var concat_ = function(arr1

個數的簡單實現

var arr = ['abc','abcd','sss','2','d','t','2','ss','f','22','d']; //定義一個新的陣列 var s = []; //遍歷陣列 for(var i = 0;i<arr.length;i++){ if(s.indexOf(arr[i

編寫一個數的方法

<script> var arr = [1,2,"2","4",5,2,1]; var newArr = removeRepetition(arr); conso

如何優雅的將個數合併成一個數

思考如何寫一個方法將傳遞過來的多個未知個數的數組合併成一個數組並去除陣列中的重複項? 這裡會用到ES5的concat()方法和apply()方法,基礎的for迴圈方法這裡不進行闡述。 concat(arr1,arr2)方法接受多個數組元素,並將arr2中

js將一個數push到另一個數

con lag bre var 另一個 nbsp bsp ole 輸出   function mergerArr(arr1,arr2){     var flag;    for(var i = 0;i<arr1.length;i++){      flag = fa

js個(N)個數的的元素組合排序演算法,維陣列的排列組合或個數之間的排列組合

/*返回組合的陣列*/ function doExchange(array){ var len = arr.length; // 當陣列大於等於2個的時候 if(len >= 2){ // 第一個陣列的長度

JS

itl ret light index var head logs this lang <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <t

js的兩種方法

遍歷 方法 doc 思路 i++ 代碼 數組去重 -- length 數組去重這種問題經常會遇到,解決方法也有很多,這裏就總結兩種比較常用的方法。 方法一 第一種方法的思路:遍歷數組裏的元素,由第一個元素開始依次按照順序與其後面的元素相比較,如果不同則不

JS的四種方法

new return obj 元素 數組去重 != lis 相同 break 1、通過遍歷原數組和新數組是否重復。new一個新數組存放已經遍歷過的、唯一的元素。 function uniqueArr(list){   var newArr= [list[0]];   for

js

content return i++ div spa index 設置 pan 跳過 1、前言 去重方法千千萬萬,你要哪一種 2、es系列方法 2.1、es6 Set()方法 介紹:ES6提供了新的數據結構Set。它類似於數組,但是成員的值都是唯一的,沒有重復的值。Set

JS實現數

遍歷數組 strong ash blog length 數組下標 檢測 lastindex i+1 1.遍歷數組法 它是最簡單的數組去重方法(indexOf方法) 實現思路:新建一個數組,遍歷去要重的數組,當值不在新數組的時候(indexOf為-1)就加入該新數組中; v

js算法

var i++ script 代碼 共勉 真的 重復 等於 嵌套   來來來 ,整理完數組排序 ,咱們再來看看數組去重 。這個可以說有很多方式了 。之前看過的算法方式太多 ,導致思路其實有時候真的很受限,不過也是整理來學習用的 ,如有雷同 ,純屬巧合啊 ,小婊貝們~   首

JS:利用for循環進行數

scrip document 示例 nbsp stat for循環 進行 bre script <script>  var a = [1, 3, 2, 4, 5, 3, 2, 1, 4, 6, 7, 7, 6, 6];

js常見的幾種方式

設置 con 是不是 去重 下標 return array quicksort spl 1.利用標記 var arr = [2,6,2,6,4,3,16];// arr = [2,6,4,3,16] function norepeat(arr){ var res =

js的幾種方法

判斷 var 毫無 不同的 就是 length 內存 i++ 支持 1.遍歷數組法 最簡單的去重方法, 實現思路:新建一新數組,遍歷傳入數組,值不在新數組就加入該新數組中;註意點:判斷值是否在數組的方法“indexOf”是ECMAScript5 方法,IE8以下不支持,需多

使用js裏面的叠代器filter實現數

效果 log 運行 div 實現 返回 事情 item 寫到 實現數組去重的方法很多,最原始的方法是一個值一個值的去遍歷,寫到空數組裏面: let r=[],arr = [‘a‘, ‘b‘, ‘c‘, ‘a‘]; for(var i=0,len=arr.length

js之數的方法

封裝 格式 turn true 最快 函數 func 如果 ons 數組去重?即去除數組中重復的元素... 首先第一種方法就是利用set集合的特性實現去重(其實set用法很多,有興趣的可以多去了解下);   那什麽是set集合呢?set集合是一種新的數據存儲格式;   

js實現數(方式大匯總)

turn return In 存在 特性 var proto dex con 方法一:創建新數組 var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5]; 3 Array.prototype.reArr = function(){ 4

js的方法總結

index 直接 unique 都是 沈澱 spa clas 轉換 見證 想沈澱一下自己。代碼改變世界~~~ 1、利用Array.from代碼如下 1 var arr = [1,2,3,4,3,2,1] 2 function unique(arr)