数组中的filter函数 filter()会创建一个新数组,循环对数组中的元素调用callback函数, 如果返回true 保留,如果返回false 过滤掉, 返回新数组,老数组不变。 const unique = arr => { return arr.filter((item,index) => { return arr.indexOf(item) === index; });} 1. 测试数据 let arr = [1,1,fa...
filter()方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。在用filter()方法去重时,通常会结合indexOf()方法来判断元素首次出现的位置是否与当前元素位置相同。 const array = [1, 2, 3, 4, 4, 5]; const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);...
console.log(uniqueArr); // [1, 2, 3, 4, 5] ### 方法二:使用filter和 indexOf 使用filter 和 indexOf 方法可以从数组中删除重复项。例如: javascriptCopy code const arr = [1, 2, 3, 3, 4, 5, 5]; const uniqueArr = arr.filter((item, index) => { return arr.indexOf(item) === ...
第3~7行代码遍历了旧数组arr,然后拿着旧数组元素去查询新数组,如果该元素在新数组中没有出现过,那么就添加到新数组中,否则不添加。其中第4行代码利用新数组的indexOf()方法,判断如果返回值为-1就说明新数组里面没有该元素。 二、利用splice()方法去重 splice()方法可以删除数组内容,用法为: splice(元素下标, ...
js 对象数组去重 方法一:利用filter vararr=[{id:1,name:'bob'},{id:1,name:'bob'},{id:1,name:'bob'},{id:1,name:'lucy'},{id:1,name:'lucy'},{id:2,name:'lucy'},{id:2,name:'张三'}]//去掉相同id的项目vararr1=arr.filter(function(element,index,self){returnself.findIndex(el=...
原理:利用对象的键名不可重复的特点 letobj = {} arr.filter(item=>obj.hasOwnProperty(typeofitem + item) ?false: (obj[typeofitem + item] =true)) 5. Array.reduce + Array.includes reduce()方法:接收一个函数作为累加器,数组中的每个值从左到右开始计算,最终计算为一个值。
//数组内的对象去重exportfunctiongetFilter(arr){ let rec=[] let obj={} arr.forEach(val=>{if(!obj[val.key]) { obj[val.key]=truerec.push(val) } })returnrec } // 数组去重 exportfunctiongetNewArr(arr){ letrec= [] arr.filter(val=>{ ...
一.去重前后数据对比 二.使用方法 1.使用filter和Map 2.使用reduce 3.使用for循环 三.2400条数据,三种方法处理时间对比 一.去重前后数据对比 // 原数据是这样的 // 去重后数据是这样的[{[{"goodsId":"1","goodsId":"1","quota":12,"quota":12,"skuId":"1""skuId":"1"},},{{"goodsId":"2...
* js 对象数组去重 * 测试数据 */constarr=[{id:1,name:'TL',job:'web'},{id:2,name:'CH',job:'teacher'},{id:3,name:'xx',job:'web'},{id:4,name:'xx',job:'other'}]/** * 方法一:利用 filter 方法 * indIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置(下标...
functionunique(array){varobj={};returnarray.filter(function(item){returnobj.hasOwnProperty.call(obj,item)?false:(obj[item]=true);});} 这个函数的工作原理是利用 JavaScript 对象的键名特性,即对象的键名必须是唯一的。我们创建一个空对象obj,然后遍历数组array。对于数组中的每个元素,我们尝试将其作为键添...