常用js方法函数

常用方法函数

1.深复制

// 1.深复制
function deepCopy(source) {
    var result = {};
    for (var key in source) {
    result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key];
    }

    return result;
};

2.字符串转对象

// 2.字符串转对象
function str2obj (str) {
    if (!str) return {};
    if (str.indexOf('{') >= 0 || str.indexOf('[') >= 0) {
        return self.eval(str);
    } else {
        return str;
    }
}

3.去除空格

// 3.去除空格
function Trim(str, g) {
    var result = ''; 
    
    result = str.replace(/(^\s+)|(\s+$)/g, ''); 
    if (g.toLowerCase() == 'g') {
        result = result.replace(/\s/g, ''); 
    }

    return result; 
}

4.对字符串进行加密

//4.对字符串进行加密 
function compileStr(code) {         
    var c=String.fromCharCode(code.charCodeAt(0)+code.length);  
   for(var i=1;i<code.length;i++)  
    {        
     c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));  
   }     
   return escape(c);  
}

5.字符串进行解密

 //5.字符串进行解密 
function uncompileStr(code) {          
    code=unescape(code);        
    var c=String.fromCharCode(code.charCodeAt(0)-code.length);        
    for(var i=1;i<code.length;i++)  
    {        
     c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));        
    }        
    return c; 
}

6.获取cookie值

// 6.获取cookie值
function getCookie(name) { 
    var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
 
    if (arr = document.cookie.match(reg)) {
        return unescape(arr[2]); 
    } else {
        return null; 
    } 
}

7.设置cookie值

// 7.设置cookie值
function setCookie(name,value, hours) { 
    hours = 24; 
    var exp = new Date(); 
    exp.setTime(exp.getTime() + hours*60*60*1000); 
    document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); 
}

8.时间格式化

// 8.时间格式化
function formatDate(timeNum, formatStr) { //YYYY-MM-DD hh:mm:ss
    formatStr = 'YYYY-MM-DD';
    if (!timeNum && timeNum !== 0) return '';
    var date = new Date(timeNum);
    var YYYY = date.getFullYear();
    var MM = date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
    var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
    var hh = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
    var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
    var ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
    return formatStr.replace('YYYY', YYYY).replace('MM', MM).replace('DD', DD).replace('hh', hh).replace('mm', mm).replace('ss', ss);
}

9.时间格式化 年月日 星期 时分秒

/**
 * 9.时间格式化   年月日 星期  时分秒
 * @param {*} str 
 */
function formatDateByDay(str) {
    var date = new Date();

    date.setTime(str);

    var today = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    var week = today[date.getDay()];

    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var min = date.getMinutes();
    var ss = date.getSeconds();

    var dateByDay = year + '-' + month + '-' + day + '/' + week + ' ' + hour + ':' + min + ':' + ss;

    return dateByDay;

}

10.格式化时间到毫秒

/**
 * 10.格式化时间到毫秒
 * @param {*} v 
 * @param {*} fmt 
 */
function fmtDateByMilliseconds(v, fmt = 'yyyy-MM-dd HH:mm:ss:mmm') {
    if (v) {
      var date = new Date(v);
      var y = date.getFullYear().toString();
      var M = date.getMonth() < 9 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1).toString();
      var d = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate().toString();
      var h = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours().toString();
      var m = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes().toString();
      var s = date.getSeconds() < 10 ? ('0' + date.getSeconds()) : date.getSeconds().toString();
      var mmm = date.getMilliseconds() < 10 ? ('0' + date.getMilliseconds()) : date.getMilliseconds().toString();
      if(date.getMilliseconds() < 10) {
        mmm = '00' + date.getMilliseconds();
      } else if(date.getMilliseconds() < 100) {
        mmm = '0' + date.getMilliseconds();
      } else {
        mmm = date.getMilliseconds().toString();
      }
        fmt = fmt.replace('yyyy', y).replace('MM', M)
        .replace('dd', d).replace('HH', h)
        .replace('mm', m).replace('ss', s)
        .replace('mmm', mmm);

      return fmt;
    }
    return '';
  }

11.首字母大写

//11.首字母大写
function lowercaseFirst (str) {
    return str[0].toLowerCase() + str.substring(1);
}

12.组装图片路径

/**
 * 12.组装图片路径
 * @param {*} errorPath  默认图片路径
 * @param {*} sourcePath 源路径
 * @param {*} thumb      相对路径
 */
function getThumbUrl (errorPath, sourcePath, thumb) {
    var urlThumb = '';

    if (!thumb || thumb === 'undefined' || thumb === null || thumb === '') {
        urlThumb = errorPath;
    } else {
        urlThumb = `${sourcePath}${thumb}`;
    }

    return urlThumb;
}

13.自定义处理空白图片

/**
 * 13.自定义处理空白图片
 * defalutImg要替换的默认图片
 */
function checkDefalutImg(defalutImgUrl, imgUrl) {
    var recUrl = '';

    if (!imgUrl) {
        recUrl = defalutImgUrl;
    } else {
        recUrl = imgUrl;
    }

    return 'src=' + recUrl;
}

14.获取指定长度字符串

/**
 * 14.获取指定长度字符串
 * @param {*} str       字符对象
 * @param {*} length    截取长度
 */
function getSubstring(str, length) {
    var result = '';
    if (str && str !== '' && !isNaN(length) && str.trim().length > length) {
        var spaceLen =  str.substring(0, length  ).split(' ').length ;
        result = str.substring(0, length - 1 + spaceLen-1 ) + '...';
    } else {
        result = str;
    }
    return result;
}

15.截取字符串末尾数

/**
 * 15.截取字符串末尾数
 * @param {*} str    截取的字符串
 * @param {*} length 截取的长度
 */
function getSubstringEnd(str, length) {
    var result = '';
    var len = str.trim().length;

    if (str && str !== '' && !isNaN(length) && str.trim().length > length) {

        result = str.substring(len - length, len);
    } else {
        result = str;
    }

    return result;
}

16.检测是站内还是站外链接

 /**
 * 16.检测是站内还是站外链接
 * @param {*} testUrl
 * @return true 站内链接 false 站外链接
 * baidu.com   是对应公司的域名
 */
function checkInternalUrl(testUrl) {
    return /^http(s)?:\/\/([a-zA-Z0-9][a-zA-Z0-9-]+\.){0,}baidu.com/i.test(testUrl);
}

17.去掉HTML标签

/**
 * 17.去掉HTML标签
 */
function removeHtml(input) {
    return input && input.replace(/<(?:.|\n)*?>/gm, '')
        .replace(/(&rdquo;)/g, '"')
        .replace(/&ldquo;/g, '"')
        .replace(/&mdash;/g, '-')
        .replace(/&nbsp;/g, '')
        .replace(/&gt;/g, '>')
        .replace(/&lt;/g, '<')
        .replace(/<[\w\s"':=/]*/, '');
}

18.数值截取

/**
 * 18.数值截取
 * @param arr 数值
 * @param start 开始位置
 * @param end 结束位置
 * @returns {*}
 */
function slice(arr, start, end) {
    if (arr && arr.slice) {
        return arr.slice(start, end);
    }

    return arr;
}

19.手机号码隐藏中间四位

/**
 * 19.手机号码隐藏中间四位
 */
function telFormat(tel) {
    var MAX_NUM = 11;
    var telStr = tel.toString();
    var telResult = '';

    if (!isNaN(telStr) && telStr.length === MAX_NUM) {
        var reg = /(\d{3})\d{4}(\d{4})/;

        telResult = telStr.replace(reg, '$1****$2');
    }

    return telResult;
}

20.处理a标签url为空的情况

/**
 * 20.处理a标签url为空的情况
 */
function getAElement(urlStr, targeName) {
    var aElement = '';

    if (urlStr === '' || urlStr === null || urlStr === 'http://' || urlStr === '#') {
        aElement = 'herf=javascript:;';
    } else {
        aElement = 'herf=' + urlStr;
        if (targeName) {
            aElement = 'herf=' + urlStr + ' target=' + targeName;
        }
    }

    return aElement;
}

21.截取点后的内容

/**
 * 21.截取点后的内容
 * @param {*} string
 */
function getStrDotafter(string) {
    var substr = '';

    if (string) {
        var str = string.lastIndexOf('.');
        var str2 = string.length;

        substr = string.substring(str + 1, str2);

    }

    return substr;
}

22.截取点前的内容

/**
 * 22.截取点前的内容
 * @param {*} string
 */
function getStrDotBefore(string) {
    var substr = '';

    if (string) {
        var str = string.lastIndexOf('.');

        substr = string.substring(0, str + 1);
    }

    return substr;
}

23.对象转数组

/**
 * 23.对象转数组
 */
function obj2arr(obj = {}) {
    var nameList = Object.keys(obj);

    return nameList.map(n => {
        return {value: n, name: obj[n]};
    });
}

24.字符串转对象

/**
 * 24.字符串转对象
 */
function str2obj(str) {
    return JSON.parse(str);
}

25.对象转字符串

/*
* 25.对象转字符串
* */
function obj2str(obj) {
    if(!obj) return
    return JSON.stringify(obj);
}

26.加法

/**
 * 26.加法
 * @param {} a 
 * @param {*} b 
 */
function add(a, b) {
    a = a * 1;
    b = b * 1;
    var ia = a.toString().indexOf('.');
    var ib = b.toString().indexOf('.');
    if (ia < 0 && ib < 0) {
        return a + b;
    }
    if (ia < 0 && ib >= 0) {
        var m = b.toString().length - ib - 1;
    }
    if (ia >= 0 && ib < 0) {
        var m = a.toString().length - ia - 1;
    }
    if (ia >= 0 && ib >= 0) {
        var ma = a.toString().length - ia - 1;
        var mb = b.toString().length - ib - 1;
        var m = ma > mb ? ma : mb;
    }
    return (a * Math.pow(10, m) + b * Math.pow(10, m)) / Math.pow(10, m);
}

27.数字金额转大写

/*
* 27.数字金额转大写
* */
function numTurnCh(n) {
    if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n))
        return "数据非法";
    var unit = "千百拾亿千百拾万千百拾元角分", str = "";
    n += "00";
    var p = n.indexOf('.');
    if (p >= 0)
        n = n.substring(0, p) + n.substr(p + 1, 2);
    unit = unit.substr(unit.length - n.length);
    for (var i = 0; i < n.length; i++)
        str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i);
    return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
}

28.格式化金额

/*
* 28.格式化金额
* v:金额
* num:四舍五入的小数位
* */
function fmtAmount(v, isCh = false, num = 2) {
    if ((!v || v <= 0) && isCh) return '面议';
    if (isNaN(Number(v))) return '';
    return Number(v).toFixed(num);
}

29.数组去重

/**
 * 29.数组去重
 */
function unique4(array) {
    array.sort();
    var re = [array[0]];
    for (var i = 1; i < array.length; i++) {
        if (array[i] !== re[re.length - 1]) {
            re.push(array[i]);
        }
    }
    return re;
}<p>---恢复内容结束---</p>## 常用方法函数
> ### 1.深复制

// 1.深复制
function deepCopy(source) {
var result = {};
for (var key in source) {
result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key];
}

return result;

};


> ### 2.字符串转对象

// 2.字符串转对象
function str2obj (str) {
if (!str) return {};
if (str.indexOf('{') >= 0 || str.indexOf('[') >= 0) {
return self.eval(str);
} else {
return str;
}
}


> ### 3.去除空格

// 3.去除空格
function Trim(str, g) {
var result = '';

result = str.replace(/(^\s+)|(\s+$)/g, ''); 
if (g.toLowerCase() == 'g') {
    result = result.replace(/\s/g, ''); 
}

return result; 

}


> ### 4.对字符串进行加密

//4.对字符串进行加密
function compileStr(code) {
var c=String.fromCharCode(code.charCodeAt(0)+code.length);
for(var i=1;i<code.length;i++)
{
c+=String.fromCharCode(code.charCodeAt(i)+code.charCodeAt(i-1));
}
return escape(c);
}


> ### 5.字符串进行解密

//5.字符串进行解密
function uncompileStr(code) {
code=unescape(code);
var c=String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i=1;i<code.length;i++)
{
c+=String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i-1));
}
return c;
}


> ### 6.获取cookie值

// 6.获取cookie值
function getCookie(name) {
var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');

if (arr = document.cookie.match(reg)) {
    return unescape(arr[2]); 
} else {
    return null; 
} 

}


> ### 7.设置cookie值

// 7.设置cookie值
function setCookie(name,value, hours) {
hours = 24;
var exp = new Date();
exp.setTime(exp.getTime() + hours6060*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}


> ### 8.时间格式化

// 8.时间格式化
function formatDate(timeNum, formatStr) { //YYYY-MM-DD hh:mm:ss
formatStr = 'YYYY-MM-DD';
if (!timeNum && timeNum !== 0) return '';
var date = new Date(timeNum);
var YYYY = date.getFullYear();
var MM = date.getMonth() < 9 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var hh = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
var mm = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
var ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return formatStr.replace('YYYY', YYYY).replace('MM', MM).replace('DD', DD).replace('hh', hh).replace('mm', mm).replace('ss', ss);
}


> ### 9.时间格式化   年月日 星期  时分秒

/**

  • 9.时间格式化 年月日 星期 时分秒
  • @param {} str
    /
    function formatDateByDay(str) {
    var date = new Date();

    date.setTime(str);

    var today = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
    var week = today[date.getDay()];

    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var min = date.getMinutes();
    var ss = date.getSeconds();

    var dateByDay = year + '-' + month + '-' + day + '/' + week + ' ' + hour + ':' + min + ':' + ss;

    return dateByDay;

}


> ### 10.格式化时间到毫秒

/**

  • 10.格式化时间到毫秒
  • @param {*} v
  • @param {} fmt
    /
    function fmtDateByMilliseconds(v, fmt = 'yyyy-MM-dd HH:mm:ss:mmm') {
    if (v) {
    var date = new Date(v);
    var y = date.getFullYear().toString();
    var M = date.getMonth() < 9 ? ('0' + (date.getMonth() + 1)) : (date.getMonth() + 1).toString();
    var d = date.getDate() < 10 ? ('0' + date.getDate()) : date.getDate().toString();
    var h = date.getHours() < 10 ? ('0' + date.getHours()) : date.getHours().toString();
    var m = date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes().toString();
    var s = date.getSeconds() < 10 ? ('0' + date.getSeconds()) : date.getSeconds().toString();
    var mmm = date.getMilliseconds() < 10 ? ('0' + date.getMilliseconds()) : date.getMilliseconds().toString();
    if(date.getMilliseconds() < 10) {
    mmm = '00' + date.getMilliseconds();
    } else if(date.getMilliseconds() < 100) {
    mmm = '0' + date.getMilliseconds();
    } else {
    mmm = date.getMilliseconds().toString();
    }
    fmt = fmt.replace('yyyy', y).replace('MM', M)
    .replace('dd', d).replace('HH', h)
    .replace('mm', m).replace('ss', s)
    .replace('mmm', mmm);

    return fmt;
    }
    return '';
    }
    ```

11.首字母大写

//11.首字母大写
function lowercaseFirst (str) {
    return str[0].toLowerCase() + str.substring(1);
}

12.组装图片路径

/**
 * 12.组装图片路径
 * @param {*} errorPath  默认图片路径
 * @param {*} sourcePath 源路径
 * @param {*} thumb      相对路径
 */
function getThumbUrl (errorPath, sourcePath, thumb) {
    var urlThumb = '';

    if (!thumb || thumb === 'undefined' || thumb === null || thumb === '') {
        urlThumb = errorPath;
    } else {
        urlThumb = `${sourcePath}${thumb}`;
    }

    return urlThumb;
}

13.自定义处理空白图片

/**
 * 13.自定义处理空白图片
 * defalutImg要替换的默认图片
 */
function checkDefalutImg(defalutImgUrl, imgUrl) {
    var recUrl = '';

    if (!imgUrl) {
        recUrl = defalutImgUrl;
    } else {
        recUrl = imgUrl;
    }

    return 'src=' + recUrl;
}

14.获取指定长度字符串

/**
 * 14.获取指定长度字符串
 * @param {*} str       字符对象
 * @param {*} length    截取长度
 */
function getSubstring(str, length) {
    var result = '';
    if (str && str !== '' && !isNaN(length) && str.trim().length > length) {
        var spaceLen =  str.substring(0, length  ).split(' ').length ;
        result = str.substring(0, length - 1 + spaceLen-1 ) + '...';
    } else {
        result = str;
    }
    return result;
}

15.截取字符串末尾数

/**
 * 15.截取字符串末尾数
 * @param {*} str    截取的字符串
 * @param {*} length 截取的长度
 */
function getSubstringEnd(str, length) {
    var result = '';
    var len = str.trim().length;

    if (str && str !== '' && !isNaN(length) && str.trim().length > length) {

        result = str.substring(len - length, len);
    } else {
        result = str;
    }

    return result;
}

16.检测是站内还是站外链接

 /**
 * 16.检测是站内还是站外链接
 * @param {*} testUrl
 * @return true 站内链接 false 站外链接
 * baidu.com   是对应公司的域名
 */
function checkInternalUrl(testUrl) {
    return /^http(s)?:\/\/([a-zA-Z0-9][a-zA-Z0-9-]+\.){0,}baidu.com/i.test(testUrl);
}

17.去掉HTML标签

/**
 * 17.去掉HTML标签
 */
function removeHtml(input) {
    return input && input.replace(/<(?:.|\n)*?>/gm, '')
        .replace(/(&rdquo;)/g, '"')
        .replace(/&ldquo;/g, '"')
        .replace(/&mdash;/g, '-')
        .replace(/&nbsp;/g, '')
        .replace(/&gt;/g, '>')
        .replace(/&lt;/g, '<')
        .replace(/<[\w\s"':=/]*/, '');
}

18.数值截取

/**
 * 18.数值截取
 * @param arr 数值
 * @param start 开始位置
 * @param end 结束位置
 * @returns {*}
 */
function slice(arr, start, end) {
    if (arr && arr.slice) {
        return arr.slice(start, end);
    }

    return arr;
}

19.手机号码隐藏中间四位

/**
 * 19.手机号码隐藏中间四位
 */
function telFormat(tel) {
    var MAX_NUM = 11;
    var telStr = tel.toString();
    var telResult = '';

    if (!isNaN(telStr) && telStr.length === MAX_NUM) {
        var reg = /(\d{3})\d{4}(\d{4})/;

        telResult = telStr.replace(reg, '$1****$2');
    }

    return telResult;
}

20.处理a标签url为空的情况

/**
 * 20.处理a标签url为空的情况
 */
function getAElement(urlStr, targeName) {
    var aElement = '';

    if (urlStr === '' || urlStr === null || urlStr === 'http://' || urlStr === '#') {
        aElement = 'herf=javascript:;';
    } else {
        aElement = 'herf=' + urlStr;
        if (targeName) {
            aElement = 'herf=' + urlStr + ' target=' + targeName;
        }
    }

    return aElement;
}

21.截取点后的内容

/**
 * 21.截取点后的内容
 * @param {*} string
 */
function getStrDotafter(string) {
    var substr = '';

    if (string) {
        var str = string.lastIndexOf('.');
        var str2 = string.length;

        substr = string.substring(str + 1, str2);

    }

    return substr;
}

22.截取点前的内容

/**
 * 22.截取点前的内容
 * @param {*} string
 */
function getStrDotBefore(string) {
    var substr = '';

    if (string) {
        var str = string.lastIndexOf('.');

        substr = string.substring(0, str + 1);
    }

    return substr;
}

23.对象转数组

/**
 * 23.对象转数组
 */
function obj2arr(obj = {}) {
    var nameList = Object.keys(obj);

    return nameList.map(n => {
        return {value: n, name: obj[n]};
    });
}

24.字符串转对象

/**
 * 24.字符串转对象
 */
function str2obj(str) {
    return JSON.parse(str);
}

25.对象转字符串

/*
* 25.对象转字符串
* */
function obj2str(obj) {
    if(!obj) return
    return JSON.stringify(obj);
}

26.加法

/**
 * 26.加法
 * @param {} a 
 * @param {*} b 
 */
function add(a, b) {
    a = a * 1;
    b = b * 1;
    var ia = a.toString().indexOf('.');
    var ib = b.toString().indexOf('.');
    if (ia < 0 && ib < 0) {
        return a + b;
    }
    if (ia < 0 && ib >= 0) {
        var m = b.toString().length - ib - 1;
    }
    if (ia >= 0 && ib < 0) {
        var m = a.toString().length - ia - 1;
    }
    if (ia >= 0 && ib >= 0) {
        var ma = a.toString().length - ia - 1;
        var mb = b.toString().length - ib - 1;
        var m = ma > mb ? ma : mb;
    }
    return (a * Math.pow(10, m) + b * Math.pow(10, m)) / Math.pow(10, m);
}

27.数字金额转大写

/*
* 27.数字金额转大写
* */
function numTurnCh(n) {
    if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n))
        return "数据非法";
    var unit = "千百拾亿千百拾万千百拾元角分", str = "";
    n += "00";
    var p = n.indexOf('.');
    if (p >= 0)
        n = n.substring(0, p) + n.substr(p + 1, 2);
    unit = unit.substr(unit.length - n.length);
    for (var i = 0; i < n.length; i++)
        str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i);
    return str.replace(/零(千|百|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
}

28.格式化金额

/*
* 28.格式化金额
* v:金额
* num:四舍五入的小数位
* */
function fmtAmount(v, isCh = false, num = 2) {
    if ((!v || v <= 0) && isCh) return '面议';
    if (isNaN(Number(v))) return '';
    return Number(v).toFixed(num);
}

29.数组去重

/**
 * 29.数组去重
 */
function unique4(array) {
    array.sort();
    var re = [array[0]];
    for (var i = 1; i < array.length; i++) {
        if (array[i] !== re[re.length - 1]) {
            re.push(array[i]);
        }
    }
    return re;
}

猜你喜欢

转载自www.cnblogs.com/weihe-xunwu/p/9855082.html