欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

值得收藏的45個JavaScript代碼,非常實用!

admin
2024年11月3日 7:13 本文熱度 456
  1. 生成字符串的字謎 - 使用遞歸生成給定字符串的所有可能字謎。
const anagrams = str => {
  if (str.length <= 2return str.length === 2 ? [str, str[1] + str[0]] : [str];
  return str.split('').reduce((acc, letter, i) => acc.concat(anagrams(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)), []);
};
  1. 計算數(shù)組的平均數(shù) - 使用reduce方法計算數(shù)組的平均值。
const average = arr => arr.reduce((acc, val) => acc + val, 0) / arr.length;
  1. 首字母大寫每個單詞 - 使用正則表達式匹配每個單詞并大寫。
const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());
  1. 檢查字符串是否為回文 - 轉換為小寫并移除非字母字符,然后檢查反轉后的字符串是否與原字符串相同。
const palindrome = str => {
  const s = str.toLowerCase().replace(/[\W_]/g'');
  return s === s.split('').reverse().join('');
};
  1. 計算數(shù)組中特定值的出現(xiàn)次數(shù) - 使用reduce方法計算特定值的出現(xiàn)次數(shù)。
const countOccurrences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 00);
  1. 獲取當前URL - 使用window.location.href獲取當前頁面的URL。
const currentUrl = _ => window.location.href;
  1. Currying函數(shù) - 使用遞歸實現(xiàn)函數(shù)柯里化。
const curry = (fn, arity = fn.length, ...args) =>
  arity <= args.length ? fn(...args) : curry.bind(null, fn, arity, ...args);
  1. 深度扁平化數(shù)組 - 使用遞歸和reduce方法實現(xiàn)數(shù)組的深度扁平化。
const deepFlatten = arr => arr.reduce((a, v) => a.concat(Array.isArray(v) ? deepFlatten(v) : v), []);
  1. 計算兩點之間的距離 - 使用Math.hypot方法計算兩點之間的歐幾里得距離。
const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
  1. 生成斐波那契數(shù)列 - 使用reduce方法生成長度為n的斐波那契數(shù)列。
const fibonacci = n => Array(n).fill(0).reduce((acc, val, i) => acc.concat(i > 1 ? acc[i - 1] + acc[i - 2] : i), []);
  1. 過濾數(shù)組中的非唯一值 - 過濾出數(shù)組中只出現(xiàn)一次的元素。
const filterNonUnique = arr => arr.filter(i => arr.indexOf(i) === arr.lastIndexOf(i));
  1. 扁平化數(shù)組 - 使用reduceconcat方法扁平化數(shù)組。
const flatten = arr => arr.reduce((a, v) => a.concat(v), []);
  1. 獲取數(shù)組中的最大值/最小值 - 使用Math.max/Math.min和擴展運算符。
const arrayMax = arr => Math.max(...arr);
const arrayMin = arr => Math.min(...arr);
  1. 獲取滾動位置 - 獲取元素或窗口的滾動位置。
const getScrollPos = (el = window) => ({
  x: (el.pageXOffset !== undefined) ? el.pageXOffset : el.scrollLeft,
  y: (el.pageYOffset !== undefined) ? el.pageYOffset : el.scrollTop
});
  1. 計算最大公約數(shù) - 使用遞歸計算兩個數(shù)的最大公約數(shù)。
const gcd = (x, y) => !y ? x : gcd(y, x % y);
  1. 生成UUID - 使用crypto API生成符合RFC4122版本4的UUID。
const uuid = _ => ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c => (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));
  1. 驗證數(shù)字 - 檢查參數(shù)是否為有效的數(shù)字。
const validateNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n) == n;

繼續(xù)總結剩余的JavaScript代碼片段:

  1. 反轉字符串 - 使用數(shù)組的解構和reverse方法來反轉字符串。
const reverseString = str => [...str].reverse().join('');
  1. RGB轉十六進制顏色 - 將RGB顏色值轉換為十六進制顏色字符串。
const rgbToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6'0');
  1. 滾動到頁面頂部 - 平滑滾動到頁面頂部。
const scrollToTop = _ => {
  const c = document.documentElement.scrollTop || document.body.scrollTop;
  if (c > 0) {
    window.requestAnimationFrame(scrollToTop);
    window.scrollTo(0, c - c / 8);
  }
};
  1. 隨機化數(shù)組元素順序 - 使用sort方法和Math.random隨機排序數(shù)組元素。
const shuffle = arr => arr.sort(() => Math.random() - 0.5);
  1. 重定向到URL - 重定向到指定的URL地址。
const redirect = (url, asLink = true) =>
  asLink ? window.location.href = url : window.location.replace(url);
  1. 獲取數(shù)組中隨機元素的值 - 根據(jù)隨機生成的值對數(shù)組元素進行排序。
const countShuffle = arr => {
  let r = arr.map(() => Math.random());
  return arr.sort((a, b) => r[a] - r[b]);
};
  1. 過濾數(shù)組與給定值的相似性 - 過濾數(shù)組,只保留在給定數(shù)組values中的元素。
const similarity = (arr, values) => arr.filter(v => values.includes(v));
  1. 按字母順序排序字符串中的字符 - 對字符串中的字符進行字母順序排序。
const sortCharactersInString = str =>
  str.split('').sort((a, b) => a.localeCompare(b)).join('');
  1. 計算數(shù)組元素總和 - 使用reduce方法計算數(shù)組中所有元素的總和。
const sum = arr => arr.reduce((acc, val) => acc + val, 0);
  1. 交換兩個變量的值 - 使用數(shù)組解構交換兩個變量的值。
// 示例中未給出具體的函數(shù)實現(xiàn),但提供了基本的語法
// [varA, varB] = [varB, varA];
  1. 獲取數(shù)組的尾部元素 - 返回數(shù)組除去第一個元素后的部分。
const tail = arr => arr.length > 1 ? arr.slice(1) : arr;
  1. 獲取數(shù)組中的唯一值 - 使用Set對象去除數(shù)組中的重復元素。
const unique = arr => [...new Set(arr)];
  1. 解析URL參數(shù) - 從URL中解析出參數(shù)并轉換為對象。
const getUrlParameters = url =>
  url.match(/([^?&=]+)(=([^&]*))/g).reduce((a, v) => (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1), a), {});

繼續(xù)總結剩余的JavaScript代碼片段:

  1. 初始化數(shù)組范圍 - 使用map方法生成一個從startend的數(shù)組。
const initializeArrayRange = (end, start = 0) =>
  Array.apply(nullArray(end - start)).map((v, i) => i + start);
  1. 初始化數(shù)組為特定值 - 使用fill方法生成一個指定長度且每個元素都是value的數(shù)組。
const initializeArray = (n, value = 0) => Array(n).fill(value);
  1. 獲取數(shù)組的第一個元素 - 返回數(shù)組的第一個元素。
const head = arr => arr[0];
  1. 獲取數(shù)組的剩余元素(除去第一個) - 返回數(shù)組除去第一個元素后的所有元素。
const initial = arr => arr.slice(0-1);
  1. 獲取數(shù)組的最后一個元素 - 返回數(shù)組的最后一個元素。
const last = arr => arr.slice(-1)[0];
  1. 測試函數(shù)執(zhí)行時間 - 使用performance.now測量函數(shù)執(zhí)行時間。
const timeTaken = callback => {
  console.time('timeTaken');
  const r = callback();
  console.timeEnd('timeTaken');
  return r;
};
  1. 從鍵值對創(chuàng)建對象 - 使用reduce方法將鍵值對數(shù)組轉換為對象。
const objectFromPairs = arr => arr.reduce((a, v) => (a[v[0]] = v[1], a), {});
  1. 函數(shù)管道 - 將多個函數(shù)組合執(zhí)行,將一個函數(shù)的輸出作為下一個函數(shù)的輸入。
const pipe = (...funcs) => arg => funcs.reduce((acc, func) => func(acc), arg);
  1. 生成冪集 - 使用reducemap生成一個數(shù)組所有可能的子集。
const powerset = arr =>
  arr.reduce((a, v) => a.concat(a.map(r => [v].concat(r))), [[]]);
  1. 生成范圍內(nèi)的隨機整數(shù) - 生成一個在minmax之間的隨機整數(shù)。
const randomIntegerInRange = (min, max) =>
  Math.floor(Math.random() * (max - min + 1)) + min;
  1. 生成范圍內(nèi)的隨機數(shù) - 生成一個在minmax之間的隨機數(shù)。
const randomInRange = (min, max) => Math.random() * (max - min) + min;
  1. 判斷數(shù)字能否被整除 - 使用模運算符判斷dividend能否被divisor整除。
const isDivisible = (dividend, divisor) => dividend % divisor === 0;
  1. 轉義正則表達式特殊字符 - 使用replace方法轉義正則表達式中的特殊字符。
const escapeRegExp = str => str.replace(/[.*+?^${}()|[\]\\]/g'\\$&');
  1. 判斷數(shù)字是偶數(shù)還是奇數(shù) - 使用模運算符判斷數(shù)字是偶數(shù)還是奇數(shù)。
const isEven = num => num % 2 === 0;
  1. 計算數(shù)字的階乘 - 使用遞歸計算數(shù)字的階乘。
const factorial = n => n <= 1 ? 1 : n * factorial(n - 1);

這些代碼片段展示了JavaScript在處理字符串、數(shù)組、數(shù)學運算以及DOM操作等方面的強大能力,非常適合在實際開發(fā)中快速實現(xiàn)功能。


該文章在 2024/11/4 10:42:42 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved