/** * parse float保留两位小数,四舍五入 * 空格或者非数字认为是0 * @param x * @returns {*} */ function f2(x) { if(!x){ return 0; } var f = parseFloat(x); if (isNaN(f)) { return 0; } return Math.round(x*100)/100; } /** * 一维数组变二维数组 * @param list * @param elementsPerSubArray * @returns {Array} */ function arrayToMatrix(list, elementsPerSubArray) { var matrix = [], i, k; for (i = 0, k = -1; i < list.length; i++) { if (i % elementsPerSubArray === 0) { k++; matrix[k] = []; } matrix[k].push(list[i]); } return matrix; } /** * 根据映射关系将数组变为对象 */ function arr2Object(arr, mapArr) { var obj = {}; for (var i = 0; i < mapArr.length; i++) { if(!arr[i]){ //如果有空的就返回空 return null; } obj[mapArr[i]]=arr[i]; } return obj; } /** * 收集收入明细的数据,因为动态添加的行modal无法识别,所以自己来收集 * @returns {Array} */ function collectData(className) { var a= []; $("." + className).each(function (t) { a.push($(this).val()); }); return a; } /** * 绑定每一行的删除事件,删除当前的一行tr */ function bindDeleteBtn() { $(".am-modal-line-delete").click(function () { //删除自己对应的tr $(this).parent().parent().remove(); }); } /** * 将页面收集到的数据转换为ajax请求的数据【一维数组转换为对象数组】 * @param data * @param detailPropertyArr * @returns {Array} */ function convertDetail(data,detailPropertyArr) { var arr = arrayToMatrix(data,detailPropertyArr.length); var details = []; for (var i=0;i