我們在專案實踐的過程中經常遇到的問題或者面試的時候經常被問到的問題就是對陣列的操作,老生常談的問題有:去重、取不同、取相同,本文主要記錄這些常用的操作的簡單、高效的實現方法。
// 去重方法1--物件方法(es5)
var arr = [1, 2, 3, 4, "a", "b", "c", 2, 3, "c"];
var obj = {};
var newarr = ;
arr.foreach(item =>
});console.log('es5方法:',newarr)
// 去重方法2--new set()
let arr = [1, 2, 3, 4, "a", "b", "c", 2, 3, "c"];
let arrset = new set(arr);
let newarr = array.from(arrset);
console.log('set方法:',newarr)
// es6獲取
let arr1 = ["a", "b", "c", 2, 3, 4];
let arr2 = [4, 5, 6, "a", "ab", "c"];
// 獲取相同
let samearr = arr1.filter(x => arr2.includes(x));
console.log("samearr:",samearr);
// 獲取不同
let diffarr = arr1.filter(x => !arr2.includes(x)).concat(arr2.filter(x => !arr1.includes(x)))
console.log("diffarr:",diffarr);
// 獲取相同(es5)
var arr1 = ["a", "b", "c", 2, 3, 4];
var arr2 = [4, 5, 6, "a", "ab", "c"];
var obj ={};
var samearr =;
arr1.foreach(item=>);
arr2.foreach(item =>
})console.log("samearr:",samearr);
var arr1 = ["a", "b", "c", 2, 3, 4];
var arr2 = [4, 5, 6, "a", "ab", "c"];
// 去重後的陣列
var arr =;
var obj = {};
var sameobj = {};
// 連線2個陣列,先去重,並記錄重複的,獲取到的去重陣列再去掉重複過的元素,不就是不同的了嗎
var arr3 = arr1.concat(arr2);
arr3.foreach(item=>else
});var diffarr =;
arr.foreach(item=>
});console.log("diffarr",diffarr)
總的來說:es6後使用一些新的特性和方法會簡單一點,es5據測試使用物件+單個陣列遍歷的方法更高效一點。 php陣列指定元素去重,php陣列對陣列元素去重
最簡單的辦法利用php自帶的函式用array flip實現去重效果,另乙個方法是使用php的array flip函式來間接的實現去重效果 array flip是反轉陣列鍵和值的函式,他有個特性就是如果陣列中有二個值是一樣的,那麼反轉後會保留最後乙個鍵和 值.利用這個特性我們用他來間接的實現陣列的去重...
關於陣列的去重
簡單一維陣列的去重方法有很多,這種陣列裡面的值都是普通的資料型別,並沒有物件,因此去重方法有很多,這裡總結一下常用的四種方法 網上還有一些其它的方法 方法一 雙層迴圈去重 function uniquearr arr result.push arr i return result 方法二 利用物件的...
陣列元素去重的方法
今天給朋友們帶來陣列元素去重的方法 首先我們定義一組資料 let array 3 1,7 1,3 2,5 4,3 2,5 7,8 9,8 let newarray 接下來我們分別用不同的方法去對他進行去重。放到newarray裡面。一 es3普通迴圈function has array,val re...