美文网首页
2019-09-26

2019-09-26

作者: js66 | 来源:发表于2019-09-26 08:47 被阅读0次

/**

  • 输出指定格式的日期
  • @param {any} dateObj new Date()
  • @param {any} format 'yyyy-MM-dd hh:mm:ss'
  • @returns
    */
    function dateToString(dateObj, format) {
    var z = {
    y: dateObj.getFullYear(),
    M: dateObj.getMonth() + 1,
    d: dateObj.getDate(),
    h: dateObj.getHours(),
    m: dateObj.getMinutes(),
    s: dateObj.getSeconds()
    };
    return format.replace(/(y+|M+|d+|h+|m+|s+)/g, function (v) {
    return ((v.length > 1 ? '0' : '') + eval('z.' + v.slice(-1))).slice(-(v.length > 2 ? v.length : 2))
    });
    }

function axiosRequest(url, type, data = {}, timeout = 100000, needContentType = true) {
return new Promise(function (resolve, reject) {
let requestObj = {
method: type,
url: url,
params: data,
data: data,
responseType: 'json',
maxContentLength: 1073741824, // 单位 bytes 这里为1G
headers: {
'Content-Type': 'application/json'
},
timeout: timeout || 100000
}

    // 如果是get请求,需要对参数序列化函数进行改造,因为会过滤掉null值得参数
    if (_.isEqual(type.toLowerCase(), 'get')) {
        requestObj.paramsSerializer = function (params) {
            let str = '';
            for (let key in params) {
                str += key + '=' + encodeURIComponent(params[key]) + '&';
            }

            return str.slice(0, str.length - 1);
        }
    }

    axios(requestObj).then((response) => {
        resolve(response.data);
    }).catch(function (error) {
        console.error(error);
        reject(error);
    });
})

}

import _ from 'lodash';

// 克隆自身属性
function cloneDeep(obj) {
var o;
if (typeof obj === 'object') {
if (obj === null) {
o = null;
} else {
if (obj instanceof Array) {
o = [];
for (var i = 0, len = obj.length; i < len; i++) {
o.push(cloneDeep(obj[i]));
}
} else {
o = {};
for (var k in obj) {
if (obj.hasOwnProperty(k)) {
o[k] = cloneDeep(obj[k]);
}
}
}
}
} else {
o = obj;
}
return o;
}

// 克隆指定的自身属性
function cloneDeepWithKeys(obj, keys) {
var o;
if (typeof obj === 'object') {
if (obj === null) {
o = null;
} else {
if (obj instanceof Array) {
o = [];
for (var i = 0, len = obj.length; i < len; i++) {
o.push(cloneDeepWithKeys(obj[i], keys));
}
} else {
o = {};
for (var k in obj) {
if (_.indexOf(keys, k) !== -1 && obj.hasOwnProperty(k)) {
o[k] = cloneDeep(obj[k]);
}
}
}
}
} else {
o = obj;
}
return o;
}

// 判断是否为空
function isEmpty(obj) {
if (obj === undefined || obj === '') {
return true;
}

if (_.isBoolean(obj) || _.isNumber(obj) || _.isDate(obj) || _.isRegExp(obj) || _.isFunction(obj) || _.isElement(obj) || _.isArguments(obj)) {
    return false;
}

if ((typeof obj) === 'undefined') {
    return true;
}

return _.isEmpty(obj);

}

function toPercent(point) {
var str = Number(point * 100).toFixed(1);
str += '%';
return str;
}

function toPoint(percent) {
var str = percent.replace('%', '');
str = str / 100;
return str;
}

function getCookie(cName) {
if (document.cookie.length > 0) {
var cStart = document.cookie.indexOf(cName + '=')
if (cStart != -1) {
cStart = cStart + cName.length + 1
var cEnd = document.cookie.indexOf(';', cStart)
if (cEnd == -1) cEnd = document.cookie.length
return unescape(document.cookie.substring(cStart, cEnd))
}
}
return ''
}

function setCookie(cName, value, expiredays) {
var exdate = new Date()
exdate.setDate(exdate.getDate() + expiredays)
document.cookie = cName + '=' + escape(value) +
((expiredays == null) ? '' : ';expires=' + exdate.toGMTString())
}

/**

  • 查找对象中是否包含某个属性的某个值(全等)
    */
    function findPropertyDeepEqual(obj, proName, value) {
    if (obj == null) {
    return false;
    }

    // 首先判断是不是对象
    if (typeof obj == 'object') {
    // 再判断是不是数组
    if (Array.isArray(obj)) {
    for (let i = 0; i < obj.length; i++) {
    if (findPropertyDeepEqual(obj[i], proName, value)) {
    return true;
    }
    }
    } else {
    // 首先判断这个对象里的这个属性
    if (obj[proName] != null && obj[proName] == value) {
    return true;
    }

         let keys = Object.keys(obj);
         for (let i = 0; i < keys.length; i++) {
             if (findPropertyDeepEqual(obj[keys[i]], proName, value)) {
                 return true;
             }
         }
     }
     return false;
    

    } else {
    return false;
    }
    }

/**

  • 查找对象中是否包含某个属性的某个值(包含)
    */
    function findPropertyDeepIncludes(obj, proName, value) {
    if (obj == null) {
    return false;
    }

    // 首先判断是不是对象
    if (typeof obj == 'object') {
    // 再判断是不是数组
    if (Array.isArray(obj)) {
    for (let i = 0; i < obj.length; i++) {
    if (findPropertyDeepIncludes(obj[i], proName, value)) {
    return true;
    }
    }
    } else {
    // 首先判断这个对象里的这个属性
    if (obj[proName] != null && _.includes(obj[proName], value)) {
    return true;
    }

         let keys = Object.keys(obj);
         for (let i = 0; i < keys.length; i++) {
             if (findPropertyDeepIncludes(obj[keys[i]], proName, value)) {
                 return true;
             }
         }
     }
     return false;
    

    } else {
    return false;
    }
    }

/**

  • 交换数组中两个元素的位置,这个会直接改变传入的数组
  • @param {any} array
  • @param {any} index1
  • @param {any} index2
    */
    function swapElement(array, index1, index2) {
    [array[index1], array[index2]] = [array[index2], array[index1]];
    }

export default {
cloneDeep: cloneDeep,
cloneDeepWithKeys: cloneDeepWithKeys,
isEmpty: isEmpty,
toPercent: toPercent,
toPoint: toPoint,
setCookie: setCookie,
getCookie: getCookie,
findPropertyDeepEqual: findPropertyDeepEqual,
findPropertyDeepIncludes: findPropertyDeepIncludes,
swapElement: swapElement
}

相关文章

  • webView 添加头部与底部视图

    2019-09-26:iOS 13 之后由于 UIWebView 被废弃,本文已经不在适用。请看这篇文章 iOS ...

  • 9月-浮云

    2019-09-26 最近我们网站换了新的支付网关,付款失败率很高,今天停掉了这个支付接口,用回了原来的端口。有一...

  • 2019-09-26跑步记录

    时间:2019-09-26 21:00 线路:天马河绿道 成绩:5公里用时28分 感受:九月眼看就要结束,出了趟远...

  • 我要到你家门口

    空谷 2019-09-26 我要到你家门口 馋着一点点月饼 快栓住那跑出的狗 认认俺也是...

  • 近代湖湘人才辈出最直接的原因是什么?

    2019-09-26 12:09来源:澎湃新闻·澎湃号·湃客 作者简介:沈登苗,1957年生,浙江省慈溪市人,独立...

  • 2019-09-26

    当你想要批评别人的时候,你就记住,这个世界上的人,并非个个都有过你拥有的那些优越条件。 ——19.9.26记

  • 2019-09-26

    开始读《死屋手记》。好的作品往往是在你读了开头几页你就知道自己会读到最后一页的那种。

  • 2019-09-26

    晨起的阳光真好,有点想你,你还有几天就回来了。宝贝 转眼间孩子都这么大了 单位里的小朋友看着就想起宝贝,老爸这几天...

  • 2019-09-26

    #一起好好学习#魏正民老师的《面试官赋能培训:目标选才》圆满交付。 两天的课程,理论和实操相结合,在模拟面试环节,...

  • 2019-09-26

    摘要:马云想方设法去探望小宋,还对小宋调侃说,要不要在对面的楼房上挂一个横幅,上面写“我们支持你”还给小宋送来了手...

网友评论

      本文标题:2019-09-26

      本文链接:https://www.haomeiwen.com/subject/midguctx.html