JSON配列脱重

1456 ワード

1.JSON配列デクリメント、同一key値加算
需要説明:JSON配列のchnlNoフィールドと同じ項目を除去し、amountを加算します.
paylist:[{chnlNo: "  ", amount: 300, type: 2}, {chnlNo: "   ", amount: "100", type: 2},
{chnlNo: "   ", amount: "400", type: 2}, {chnlNo: "  ", amount: 200, type: 2}]
function UniquePay(paylist) {
        var payArr = [paylist[0]];
        for (var i = 1; i < paylist.length; i++) {
            var payItem = paylist[i];
            var repeat = false;
            for (var j = 0; j < payArr.length; j++) {
                if (payItem.chnlNo == payArr[j].chnlNo) {
                    payArr[j].amount = parseFloat(payArr[j].amount) + parseFloat(payItem.amount);
                    repeat = true;
                    break;
                }
            }
            if (!repeat) {
                payArr.push(payItem);
            }
        }
        return payArr;
};

2.JSON配列デポジット
/*
 * JSON    
 * @param: [array] json Array
 * @param: [string]    key ,         
 */

function uniqueArray(array, key){
  var result = [array[0]];
  for(var i = 1; i < array.length; i++){
    var item = array[i];
    var repeat = false;
    for (var j = 0; j < result.length; j++) {
      if (item[key] == result[j][key]) {
        repeat = true;
        break;
      }
    }
    if (!repeat) {
      result.push(item);
    }
  }
  return result;
}