本文共 1010 字,大约阅读时间需要 3 分钟。
// 1、数组中无NaN的项 var a = [ "zx", "fg", 12, 34, 56, "zx", "fg", 12,34, 56, false, false, true, null ]; var arr = []; a.forEach(function(item) { if (arr.indexOf === -1) { arr.push(item); } }) console.log(a)// ["zx", "fg", 12, 34, 56, false,true, null] // 2、数组中有NaN的项 var a = [ "zx", "fg", 12, 34, 56, "zx", "fg", 12,34, 56, NaN, NaN, NaN, false, false, true,null ]; var arr = []; var flag = true; a.forEach(function(item) { if (item != item) { if (flag) { arr.indexOf === -1 ? arr.push(item) : ""; flag = false } } else { arr.indexOf === -1 ? arr.push(item) : ""; } }) console.log(arr) // ["zx", "fg", 12, 34, 56, NaN,false, true, null] // 3、ES6的实现 // ES6新增了 Set 对象,也就是我们所说的“集合”,它类似于数组,但是成员 // 的值都是唯一的,没有重复的值。所以可以方便去重。 // Set本身是一个构造函数,用来生成Set数据结构。(详看Set和Map数据结构) var a = [ "zx", "fg", 12, 34, 56, "zx", "fg", 12,34, 56, NaN, NaN, NaN, false, false, true,null ] var b = Array.from(new Set(a)); console.log(b) // ["zx", "fg", 12, 34, 56, NaN, false, true, null]
转载地址:http://svqii.baihongyu.com/