js 对象object转字符串,JS对象数组去重复
2018/11/26 15:1:2 | 阅2844 | 来源:好空间网络 [打印] [关闭] |
var code='JS对象' //console.log('打印字符串'+JSON.stringify(code))
老是忘记, 记录下来
以下是去重复的方法
var array = [ {a:1,b:2,c:3,d:4}, {a:11,b:22,c:333,d:44}, {a:111,b:222,c:333,d:444}, {a:11,b:22,c:33,d:44}, {a:11,b:22,c:33,d:444} ];
//将对象元素转换成字符串以作比较 function obj2key(obj, keys){ var n = keys.length, key = []; while(n--){ key.push(obj[keys[n]]); } return key.join('|'); } //去重操作 function uniqeByKeys(array,keys){ var arr = []; var hash = {}; for (var i = 0, j = array.length; i < j; i++) { var k = obj2key(array[i], keys); if (!(k in hash)) { hash[k] = true; arr .push(array[i]); } } return arr ; }
调用方法
//进行去重 var arr = uniqeByKeys(array,['a','b']);
最后得到
array = [ {a:1,b:2,c:3,d:4}, {a:11,b:22,c:333,d:44}, {a:111,b:222,c:333,d:444} ];
小程序里使用
var newarray =l.data //新数组 var newarrays = newarray.concat('老数组'); //新的和旧的合并 var arr = that.uniqeByKeys(newarrays,['productid']);//调用方法去重 //将对象元素转换成字符串以作比较 obj2key:function(obj, keys){ var n = keys.length, key = []; while(n--){ key.push(obj[keys[n]]); } return key.join('|'); }, //去重操作 uniqeByKeys:function(array,keys){ var arr = []; var hash = {}; for (var i = 0, j = array.length; i < j; i++) { var k = this.obj2key(array[i], keys); if (!(k in hash)) { hash[k] = true; arr.push(array[i]); } } return arr ; }