开发过程遇到的问题

来源:互联网 发布:程序员保密费 编辑:程序博客网 时间:2024/05/18 21:42
  • js计算精度问题
  • ie下forEach不支持问题
  • 数组去重复问题

<script type="text/javascript">        //解决js计算精度        function add(a, b) {            var c, d, e;            try {                c = a.toString().split(".")[1].length;            } catch (f) {                c = 0;            }            try {                d = b.toString().split(".")[1].length;            } catch (f) {                d = 0;            }            return e = Math.pow(10, Math.max(c, d)), (mul(a, e) + mul(b, e)) / e;        }        function sub(a, b) {            var c, d, e;            try {                c = a.toString().split(".")[1].length;            } catch (f) {                c = 0;            }            try {                d = b.toString().split(".")[1].length;            } catch (f) {                d = 0;            }            return e = Math.pow(10, Math.max(c, d)), (mul(a, e) - mul(b, e)) / e;        }        function mul(a, b) {            var c = 0,        d = a.toString(),        e = b.toString();            try {                c += d.split(".")[1].length;            } catch (f) { }            try {                c += e.split(".")[1].length;            } catch (f) { }            return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);        }        function div(a, b) {            var c, d, e = 0,        f = 0;            try {                e = a.toString().split(".")[1].length;            } catch (g) { }            try {                f = b.toString().split(".")[1].length;            } catch (g) { }            return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), mul(c / d, Math.pow(10, f - e));        }        //取数组重复        function uniArr(arr) {            var new_arr = [];            for (var i = 0; i < arr.length; i++) {                var items = arr[i];                if ($.inArray(items, new_arr) == -1) {                    new_arr.push(items);                }            }            return new_arr;        }        //ie版本forEach不支持问题        Array.prototype.forEach = function forEach(callback, thisArg) {            var T, k;            if (this == null) {                throw new TypeError("this is null or not defined");            }            var O = Object(this);            var len = O.length >>> 0;            if (typeof callback !== "function") {                throw new TypeError(callback + " is not a function");            }            if (arguments.length > 1) {                T = thisArg;            }            k = 0;            while (k < len) {                var kValue;                if (k in O) {                    kValue = O[k];                    callback.call(T, kValue, k, O);                }                k++;            }        };    </script>

0 0