JavaScript
有关JavaScript的知识
黄元帅
努力做好一件事
展开
-
javascript返回数组的不同值
需求返回a数组中不存在于b数组的值输入:两个数组 输出:a数组中不存在于b数组的值代码/* 返回a数组中不存在于b数组的值*/const difference = (a,b) =>{ const s = new Set(b); return a.filter(x=>!s.has(x));}console.log('a([1,2,5,6],b[1,原创 2018-02-07 18:16:04 · 655 阅读 · 0 评论 -
javascript合并多层级数组
需求返回一个数组的最低层级展现(遍历出数组中每个元素)输入:一个数组 输出:修改后的单层数组代码const deepFlatten = arr=>[].concat(...arr.map(v=>Array.isArray(v)?deepFlatten(v) : v));console.log('[1,[2],[3,[4]],[5,[6,[7,8]]]]合并后的数组为:'+原创 2018-02-05 18:11:11 · 2825 阅读 · 0 评论 -
javascript计算数组中某值的出现次数
需求返回一个数组某值出现的次数输入:一个数组 输出:需要计数的元素代码/* 传入一个数组 返回一个数组某值出现的次数*/const countOccurences = (arr, value) => arr.reduce((a, v) => v === value ? a + 1 : a + 0, 0);console.log('[1,3,4,6,1,3,5原创 2018-01-30 17:41:36 · 11777 阅读 · 1 评论 -
javascript求数组最大值和最小值(两种方法)
需求返回一个数字数组的最大值或最小值输入:一个数字数组 输出:该数组的最大值或最小值代码/* 传入一个数组 获取最大或最小值*/const max_1 = arr=>Math.max(...arr);const min_1 = arr=>Math.min(...arr);Array.prototype.max_2 = function(){ return原创 2018-01-29 18:25:23 · 4781 阅读 · 0 评论 -
javascript数组平均数
需求返回一个数字数组的平均数输入:一个数字数组 输出:该数组的平均值代码const average = arr => arr.reduce((acc, val) => acc + val, 0) / arr.length;效果一点思路箭头函数(ES6),reduce(ES5)相比于while和for循环大大减少运行时间原创 2017-12-21 20:09:01 · 7678 阅读 · 0 评论 -
javascript解析URL中的参数——返回对象
需求在同域的不同前端页面跳转或者不同域前端页面跳转时,可以通过参数传递一些数据,比如下面我们在某度搜索“location.search”:输入:一个包含参数的URL地址 输出:一个含有所有参数的对象代码目前有两种解决方案方案1const getURLParameters = url =>url.match(/([^?=&]+)(=([^&]*))/g).reduce((a, v) => (a[原创 2017-12-21 20:54:22 · 6958 阅读 · 0 评论 -
将字符串中每个单词的首字母大写
需求将字符串中每个单词的首字母大写输入:一个形如句子的字符串 输出:每个单词第一个字符大写的字符串代码const capitalizeEveryWord = str => str.replace(/\b[a-z]/g, char => char.toUpperCase());效果一点思路利用正则表达式 精准定位到需要更改的字符。原创 2017-12-29 11:50:13 · 6882 阅读 · 2 评论 -
javascript将字符串的第一个字母大写
需求将字符串的第一个字母大写输入:一个字符串,第二个参数表示字符串其余字符是否作出改变 输出:第一个字母大写的字符串代码const capitalize = ([first,...rest], lowerRest = false) =>first.toUpperCase() + (lowerRest ? rest.join('').toLowerCase() : rest.join(''));效原创 2017-12-29 11:32:04 · 4877 阅读 · 0 评论 -
javascript返回字符串的所有排列
需求返回一个字符串所有的排列输入:一个字符串 输出:一个包含该字符串所有排列情况的数组代码const anagrams = str => { if (str.length <= 2) { return str.length === 2 ? [str, str[1] + str[0]] : [str]; } else{ return str.split(''原创 2017-12-21 19:48:41 · 2080 阅读 · 1 评论