JS工具類2

生成數(shù)組

當你需要要生成一個0-99的數(shù)組
方案1

const createArr = (n) => Array.from(new Array(n), (v, i) => i)
const arr = createArr(100) // 0 - 99 數(shù)組

方案2

const createArr = (n) => new Array(n).fill(0).map((v, i) => i)
createArr(100) // 0 - 99數(shù)組

查找最大值索引

const indexOfMax = (arr) => arr.reduce((prev, curr, i, a) => (curr > a[prev] ? i : prev), 0);
indexOfMax([1, 3, 9, 7, 5]); // 

查找最小值索引

const indexOfMin = (arr) => arr.reduce((prev, curr, i, a) => (curr < a[prev] ? i : prev), 0)
indexOfMin([2, 5, 3, 4, 1, 0, 9]) // 5

數(shù)字轉換

將10進制轉換成n進制,可以使用toString(n)

const toDecimal = (num, n = 10) => num.toString(n) 
// 假設數(shù)字10要轉換成2進制
toDecimal(10, 2) // '1010'

將n進制轉換成10進制,可以使用parseInt(num, n)

// 10的2進制為1010
const toDecimalism = (num, n = 10) => parseInt(num, n)
toDecimalism(1010, 2)

手機號格式化

const formatPhone = (str, sign = '-') => str.replace(/(\W|\s)/g, "").split(/^(\d{3})(\d{4})(\d{4})$/).filter(item => item).join(sign)
formatPhone('13123456789') // '131-2345-6789'
formatPhone('13 1234 56 789', ' ') // '131 2345 6789'

去除多余空格

const setTrimOut = str => str.replace(/\s\s+/g, ' ')
const str = setTrimOut('hello,   jack') // 

web重新加載當前頁面

const reload = () => location.reload();
reload()

web滾動到頁面頂部

const goToTop = () => window.scrollTo(0, 0);
goToTop()

web元素滾動

如果你希望將一個元素順滑的滾動到可視區(qū)域的起點

const scrollToTop = (element) =>
  element.scrollIntoView({ behavior: "smooth", block: "start" })
scrollToTop(document.body)

web文本粘貼

const copy = (text) => navigator.clipboard?.writeText && navigator.clipboard.writeText(text)
copy('你需要粘貼的文本')

日期 判斷日期是否為今天

const isToday = (date) => date.toISOString().slice(0, 10) === new Date().toISOString().slice(0, 10)

日期轉換

當你需要將日期轉換為為 YYYY-MM-DD 格式

const formatYmd = (date) => date.toISOString().slice(0, 10);
formatYmd(new Date())

日期 判斷日期是否為今天

const formatYmd = (date) => date.toISOString().slice(0, 10);
formatYmd(new Date())

日期 秒數(shù)轉換

當你需要將秒數(shù)轉換為 hh:mm:ss 格式

const formatSeconds = (s) => new Date(s * 1000).toISOString().substr(11, 8)
formatSeconds(200) // 00:03:20

數(shù)字 四舍五入

const round = (n, decimals = 0) => Number(`${Math.round(`${n}e${decimals}`)}e-${decimals}`)
round(10.255, 2) // 10.26

數(shù)字 補零

當你需要在一個數(shù)字num不足len位數(shù)的時候前面補零操作

const replenishZero = (num, len, zero = 0) => num.toString().padStart(len, zero)
replenishZero(8, 2) // 08

uuid

const uuid = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, uuid))
uuid()

獲取隨機ip

當你需要生成一個ip地址

const randomIp = () =>
    Array(4)
        .fill(0)
        .map((_, i) => Math.floor(Math.random() * 255) + (i === 0 ? 1 : 0))
        .join('.');

獲取cookie

當你需要將cookie轉換成對象

const getCookie = () => document.cookie
    .split(';')
    .map((item) => item.split('='))
    .reduce((acc, [k, v]) => (acc[k.trim().replace('"', '')] = v) && acc, {})
getCookie()

來源:https://juejin.cn/post/7228449980108423224

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容