常用工具函数分享



const utils = {

    /**
     * yc
     * 全链路url转对象
     * @param {*} allUrl 
     */
    allUrlToObj(allUrl) {
        let obj = {}
        if (allUrl.includes('?')) {
            let allUrlArr = []
            allUrlArr = allUrl.split('?')
            obj = {
                url: allUrlArr[0]
            }
            if (allUrlArr[1].includes('&')) {
                let allUrlArr1 = []
                allUrlArr1 = allUrlArr[1].split('&')
                allUrlArr1.forEach(a => {
                    if (a.includes('=')) {
                        let aArr = []
                        aArr = a.split('=')
                        obj[aArr[0]] = aArr[1]
                    }
                })
            } else {
                let allUrlArr1 = [allUrlArr[1]]
                allUrlArr1.forEach(a => {
                    if (a.includes('=')) {
                        let aArr = []
                        aArr = a.split('=')
                        obj[aArr[0]] = aArr[1]
                    }
                })
            }
        } else {
            obj = {
                url: allUrl
            }
        }
        return obj
    },

    /**
     * yc
     * 对象数组 一维化
     * @param {*} twoObjArr 
     */

    twoObjArrToOneArr(twoObjArr) {
        let oneArr = []
        twoObjArr.forEach(a => {
            Object.entries(a).forEach(b => {
                const isArr = Array.isArray(b[1])
                if (isArr) {
                    oneArr = oneArr.concat(b[1])
                }
            })
        })
        return oneArr
    },
    

     /**
      * yc
      * 时间戳 转 日期 格式
      * @param {*} timestamp 
      * @param {*} format 
      */

    timestampToDate(timestamp, format = "YYYY-MM-DD hh:mm:ss") {
        const formatArr = ['YYYY', 'MM', 'DD', 'hh', 'mm', 'ss']
        let date = new Date(timestamp)
        const YYYY = date.getFullYear()
        const MM = date.getMonth() + 1
        const DD = date.getDate()
        const hh = date.getHours()
        const mm = date.getMinutes()
        const ss = date.getSeconds()
        const dateArr = [YYYY, MM, DD, hh, mm, ss]
        let formatDate = format
        dateArr.forEach((a, index, arr) => {
            let findStr = formatArr[index]
            if (formatDate.includes(findStr)) {
                a = a >= 10 ? a : ('0' + a)
            } else {
                findStr = formatArr[index][0]
            }
            formatDate = formatDate.replace(findStr, a)
        })
        return formatDate
    },


    author: yc
}


export default utils

 

 

twoObjArr   示例

 

 let  items = [
            {
                a:[
                    {id:1},
                    {id:2}
                ],
                b:[
                    {id:3},
                    {id:4}
                ],
                c:[
                    {id:5},
                    {id:6}
                ],
                d:[
                    {id:7},
                    {id:8},
                    {id:9},

                ],
                xx:'66666'
            },
            {
                a:[
                    {id:21},
                    {id:22}
                ],
                b:[
                    {id:23},
                    {id:24}
                ],
                c:[
                    {id:25},
                    {id:26}
                ]
            }
        
        
        ]

utils.twoObjArrToOneArr(items)


let allUrl = 'https://baidu.com.cn/#/SpecialPage?id=98f73b1236884d6e8ac066248557b53a&forwardForm=b8696fe8b0ba43ea80400fb3e580db8f&isFirst=true'

        utils.allUrlToObj(allUrl)


utils.timestampToDate(new Date().getTime(),'YYYY-MM-D h:m:s')


        

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值