function testJS() { alert("testJS!"); testFun(); } function testFun() { var array = []; var a1 = {"id":1,"num":5}; var a2 = {"id":2,"num":5}; var a3 = {"id":3,"num":10}; var a4 = {"id":4,"num":15}; var a5 = {"id":2,"num":10}; var a6 = {"id":2,"num":35}; var a7 = {"id":4,"num":25}; var a8 = {"id":1,"num":5}; array.push(a1); array.push(a2); array.push(a3); array.push(a4); array.push(a5); array.push(a6); array.push(a7); array.push(a8); console.log("array:"+ array); console.log("array json:" + JSON.stringify(array)); console.log("len of array:" + array.length); console.log("如何将重复项的数值加起来,再去除重复项"); var idArray = []; for (var i = 0; i < array.length; i++){ idArray.push(array[i].id); } console.log("idArray json:" + JSON.stringify(idArray)); var chongfuIdArr = []; for (var j = 0; j < idArray.length; j++){ if(isElementChongfuInArray(idArray,idArray[j])){ if(!isElmInArray(chongfuIdArr,idArray[j])){ chongfuIdArr.push(idArray[j]); } } } console.log("chongfuIdArr:" + chongfuIdArr); var chongfuData = []; for (var x = 0; x < chongfuIdArr.length; x++){ var obj = {}; var sum = 0; obj.id = 0; for (var y = 0; y < array.length; y++){ if(chongfuIdArr[x] === array[y]["id"]){ sum += array[y]["num"]; obj.id = chongfuIdArr[x]; }else{ continue; } } obj.num = sum; chongfuData.push(obj); } console.log("chongfuData json:" + JSON.stringify(chongfuData)); for (var index = 0; index < chongfuData.length;index++){ for (var z = 0; z < array.length;){ if(array[z].id === chongfuData[index].id){ array.splice(z,1); }else{ z++; } } } for (var i = 0; i < chongfuData.length; i++){ array.push(chongfuData[i]); } // sumChongfuItemAndDeleteChongfu(array); console.log("now array json:" + JSON.stringify(array)); } //元素在数组中是否重复 function isElementChongfuInArray(arr,elm) { var nEqualTimes = 0; for (var i = 0; i < arr.length; i++){ if(arr[i] === elm){ nEqualTimes++; } }
return nEqualTimes <= 1 ? false:true;} //元素是否在数组中 function isElmInArray(arr,elm) { for (var i = 0; i < arr.length; i++){ if(arr[i] === elm){ return true; } } return false; } //计算重复的求和 并且 删除重复的 function sumChongfuItemAndDeleteChongfu(array) { var idArray = []; for (var i = 0; i < array.length; i++){ idArray.push(array[i].id); } //查找到重复id var chongfuIdArr = []; for (var j = 0; j < idArray.length; j++){ if(isElementChongfuInArray(idArray,idArray[j])){ if(!isElmInArray(chongfuIdArr,idArray[j])){ chongfuIdArr.push(idArray[j]); } } } //重复项求和 var chongfuData = []; for (var x = 0; x < chongfuIdArr.length; x++){ var obj = {}; var sum = 0; obj.id = 0; for (var y = 0; y < array.length; y++){ if(chongfuIdArr[x] === array[y]["id"]){ sum += array[y]["num"]; obj.id = chongfuIdArr[x]; } } obj.num = sum; chongfuData.push(obj); } //删除重复项 for (var index = 0; index < chongfuData.length;index++){ for (var z = 0; z < array.length;){ if(array[z].id === chongfuData[index].id){ array.splice(z,1); }else{ z++; } } } //追加原先的重复项 for (var i = 0; i < chongfuData.length; i++){ array.push(chongfuData[i]); } }
function unique(quan_lst){
//去掉重复选取的数据
for (var i = 0; i < quan_lst.length; i++) {
for (var j =i+1; j <quan_lst.length; ) {
if (quan_lst[i].photoid == quan_lst[j].photoid ) {//通过photoid属性进行匹配;
quan_lst.splice(j, 1);//去除重复的对象;
}else {
j++;
}
}
}
}