18个实用的JavaScript代码片段、工具、方法


01 maxItemOfArray

这一函数可以返回一个数组的最大值。

const maxItemOfArray = (arr) => [...arr].sort((a,b) => b一a).slice(0,1)[0];
let maxItem = maxItemOfArray([3,5,12,5]);


02 areAllEqual

这段代码可以检查数组的所有项是否相等。

const areAllEqual = array => array.every(item => item === array[0]);
let check1 = areAllEqual([3,5,2]); // false
let check2 = areAllEqual([3,3,3]); // true


03 averageOf

这一片段可以返回给定数的平均数。

const averageOf = (...numbers) => numbers.reduce((a,b)=>a+b,0) / numbers.length;
let average = average0f(5,2,4,7); // 4.5


04 reverseString

这段代码可反转字符串。

const reverseString = str => [...str].reverse().join('') ;
let a = reverseString('Have a nice day!'); // !yad ecin a evaH


05 sumOf

这段代码可以返回给定数的和。

const sumOf = (...numbers) => numbers.reduce((a, b) => a+b, 0) ;
let sum = sumOf(5,-3,2,1); // 5


06 findAndReplace

这段代码可以在字符串中查找给定单词,并且替换为另一词汇。

const findAndReplace = (string,wordToFind,wordToReplace) =>string.split(wordToFind).join(wordToReplace);
let result = findAndReplace('I like banana','banana','apple'); // I like apple


07 RGBToHex

这段代码可以将RGB模式下的颜色转换为十六进制。

const RGBToHex=(r,g,b)=>((r<<16)+(g<<8)+b).toString(16).padstart(6,'0');
let hex = RGBToHex(255,255,255); // ffffff


08 shuffle

你想知道有多少音乐播放器可以拖拽播放项目吗?或许这段代码可以给你答案。

const shuffle = ([...array]) => {
let m = array.length;
while (m) {
const i = Math.floor(Math.random()*m--);
[array[m],array[i]] = [array[i], array[m]];
}
return array;
}


09 removeFalseValues

这段代码可以帮你移除数组中的false值,包括false,undefined, NaN和empty。

const removeFalseValues = arr => arr.filter(item => item);
let arr = removeFalseValues([3,4,false,"",5,true,undefined,NaN,""]); // [3,4,5,true]


10 removeDuplicatedValues

这段代码可以帮助你移除数组中的重复项。

const removeDuplicatedValues = array => [...new Set(array)];
let arr = removeDuplicatedValues([5,3,2,5,6,1,1,6]); // [5,3,2,6,1]


11 getTimeFromDate

这段代码可以从日期对象返回字符串时间。

const getTimeFromDate = date => date.toTimeString().slice(0,8) ;
let time = getTimeFromDate(new Date()); // 09:46:08


12 capitalizeAllWords

这段代码可以将字符串中所有单词的首字母大写。

const capitalizeAllWords = str => str.replace(/\b[a-z]/g, char =>char.toUpperCase());
let str = capitalizeAllWords('i love reading book'); // I Love Reading Book


13 getDayDiff

这段代码可以返回两个日期之间的天数差。

const getDayDiff = (date1, date2) => (date2 - date1) / (1000*3600*24);
let diff = getDayDiff(new Date('2020-04-01'), new Date('2020-08-15'));//136


14 radianToDegree

这段代码可以将角度从弧度转换为度。

const radianToDegree = radian => (radian*180.0) / Math.PI;
let degree = radianToDegree(2.3); // 131.78


15 isValidJSON

这段代码可以检查给定的字符串是否为有效的JSON。

const isValidJSON = string => {
try {
  JSON.parse(string);
  return true;
  } 
  catch (error) {
  return false;
  }
};
let check1 = isValidJSON('{"title":"javascript","price":14}'); //true
let check2 = isValidJSON('{"title":"javascript","price":14,subtitle}'); // false


16 toWords

这段代码常被用于,将给定的字符串转换为一个单词数组。

const toWords = (string, pattern = /[^a-zA-Z-]+/) =>string.split(pattern).filter(item => item);
let words = toWords('I want to be come a great programmer'); // ["I","want", "to","be",come","a","great","progr ammer"]


17 scrollToTop

如果你正处于一个很长的页面的底部,而你想要快速滚动到页面顶部,这个时候,这段代码就可以使你的滚动操作更加流畅。

const scrollToTop = () => {
const t = document.documentElement.scrollTop || document.body.scrollTop;
if (t>0) 
{
window.requestAnimationFrame(scrollToTop);
window.scrollTo(0,t-t/8);
}
};


18 isValidNumber

这段代码经常被用于对一个数字进行有效性验证。

const isValidNumber = n => !isNaN(parseFloat(n)) && isFinite(n) && Number(n)===n;
let check1 = isValidNumber(10); // true
let check2 = isValidNumber('a'); // false


qrcode