美文网首页
数组去重方法+

数组去重方法+

作者: w_zhuan | 来源:发表于2020-06-24 16:15 被阅读0次

1 利用ES6 Set去重(ES6中最常用) 如果不考虑兼容性,这种去重的方法代码最少。这种方法还无法去掉“{}”空对象,后面的高阶方法会添加去掉重复“{}”的方法。

function unique(arr){

  return Array.from(new Set(arr))

}

var arr = [1,2,2,null,undefined,true,false,true,4,7,48,80,{},{}]

2. 利用hasOwnProperty 判断是否存在对象属性

function unique(arr) {

var obj = {};

return arr.filter(function(item , index, arr){

return obj.hasOwnProperty(typeof item + item) ? false : (obj[typeof item + item] = true )

})

}

3. 双重for循环 利用for嵌套for,然后splice去重(ES5中最常用)

function unique(arr) {

for (var i=0; i < arr.length; i++) {

for (var j=i+1; j < arr.length; j++) {

if (arr[i] == arr[j]) {

arr.splice(j, 1);

j--;

}

}

};

return arr;

}

4.利用indexOf去重 新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push进数组。

function unique(arr) {

if (!Array.isArray(arr)) {

console.log("type error");

return

}

var array = [];

for (var i = 0; i < arr.length; i++) {

console.log(array.indexOf(arr[i]))

if (array.indexOf(arr[i]) === -1) {

array.push(arr[i]);

}

}

return array;

}

5. 利用sort()排序方法,然后根据排序后的结果进行遍历及相邻元素比对

function unique(arr) {

if (!Array.isArray(arr)) {

console.log("type error");

return

}

            arr = arr.sort();

var array = [arr[0]];

for(var i = 1;i<arr.length;i++){

if(arr[i]!=arr[i-1]){

array.push(arr[i])

}

}

return array;

}

6.利用对象的属性不能相同的特点进行去重

function unique(arr) {

if (!Array.isArray(arr)) {

console.log("type error");

return

}

var array = [];

var obj = {};

for(var i = 0;i<arr.length;i++){

if(!obj[arr[i]]){

array.push(arr[i]);

obj[arr[i]] =1 ;

}else{

obj[arr[i]] ++

}

}

return array;

}

var arr = [1, 2, 2, null, undefined, true, false, true, 4, 7, 48, 80, NaN, NaN, "jj", "jj", {}, {}]

console.log(unique(arr))

相关文章

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • 数组去重方法

  • 数组去重方法

    const array = [1, 2, 3, '1', true, 'true', 9, 1, true] 使用...

网友评论

      本文标题:数组去重方法+

      本文链接:https://www.haomeiwen.com/subject/pngotctx.html