js 对 只包含简单类型数据的对象 为元素 组成的数组 进行去重
程序员文章站
2022-05-29 10:03:00
/** * 对于由简单类型数据组成的对象为元素组成的数组进行去重操作 * @params {Array} 需要去重的对象数组 * @returns {Array} 去重后的对象数组 */ function distinct(sourceArray) { var resultArray = []; v ......
1 /** 2 * 对于由简单类型数据组成的对象为元素组成的数组进行去重操作 3 * @params {array} 需要去重的对象数组 4 * @returns {array} 去重后的对象数组 5 */ 6 function distinct(sourcearray) { 7 8 var resultarray = []; 9 var i, j, currentsource, currentresult; 10 11 for (i = 0; i < sourcearray.length; i++) { 12 13 currentsource = sourcearray[i]; 14 15 if (resultarray.length === 0) { 16 resultarray.push(currentsource); 17 continue; 18 } 19 20 for (j = 0; j < resultarray.length; j++) { 21 22 currentresult = resultarray[j]; 23 24 if (!compare(currentresult, currentsource)) { 25 resultarray.push(currentsource); 26 } 27 28 } 29 30 } 31 32 return resultarray; 33 34 function compare(obj1, obj2) { 35 for (var prop in obj1) { 36 37 if (!obj1.hasownproperty(prop)) { 38 continue; 39 } 40 41 if (obj1[prop] !== obj2[prop]) { 42 return false; 43 } 44 45 } 46 47 return true; 48 } 49 50 }
/**
* 对于由简单类型数据组成的对象为元素组成的数组进行去重操作
* @params {array} 需要去重的对象数组
* @returns {array} 去重后的对象数组
*/
function distinct(sourcearray) {
var resultarray = [];
var i, j, currentsource, currentresult;
for (i = 0; i < sourcearray.length; i++) {
currentsource = sourcearray[i];
if (resultarray.length === 0) {
resultarray.push(currentsource);
continue;
}
for (j = 0; j < resultarray.length; j++) {
currentresult = resultarray[j];
if (!compare(currentresult, currentsource)) {
resultarray.push(currentsource);
}
}
}
return resultarray;
function compare(obj1, obj2) {
for (var prop in obj1) {
if (!obj1.hasownproperty(prop)) {
continue;
}
if (obj1[prop] !== obj2[prop]) {
return false;
}
}
return true;
}
}
上一篇: 应该反思下自己