23 03 月 2019 每天 30 秒系列 每天 30 秒系列前端精选问题集,每天仅需 30 秒前端面试精选常见面试题,帮助您准备下一次面试 HTMLCSSJavaScriptReactNodeSecurityCSS 精选常见交互,帮助您拥有简洁酷炫的站点布局视觉动画交互其他 React 精选有用的 React 片段,帮助你获取最佳实践 ArrayInputObjectVisualJavaScriptCode 精选常见代码集,帮助您提高打码效率 🔌 适配器 📚 数组 🌐 浏览器
23 03 月 2019 每天 30 秒系列之 JavaScript 代码 精选常见代码集,帮助您提高打码效率 📚 数组 allallEqualanyarrayToCSVbifurcatebifurcateBychunkcompactcountBycountOccurrencesdeepFlattendifferencedifferenceBydifferenceWithdropdropRightdropRightWhiledropWhileeveryNthfilterFalsy
25 08 月 2020 将一个对象转换为由键值对数组组成的二维数组 2020-08-25 描述从一个对象或其他迭代(对象,数组、字符串、集合等)中创建一个由键值对数组组成的数组。提示检查 Symbol.iterator 是否被定义如果是的话,使用 Array.prototype.entries()为给定的可迭代对象获取他的迭代器使用 Array.from()将结果转换为一个包含键值对数组的数组如果 Symbol.iterator 没有在 obj 中定义,则使用 Object.entri
25 08 月 2020 获取各类型值的长度 2020-08-24 描述获取一个数组、对象或字符串的长度。提示获取 val 的类型(array,object 或者 string)数组使用 length 属性如果 length 或者 size 可用的话就使用他们,否则的话使用对象拥有键的数量如果 val 为字符串的话就使用其创建一个 Blob 对象,然后返回该对象的 size 使用 split('')将字符串的每一个字符都分别分割到数组中,然后返回该数组的长度代码 constsize
25 08 月 2020 浅克隆 2020-08-21 描述为一个对象进行浅克隆。提示使用 Object.assign()和空对象({})为原始对象创建一个浅克隆代码 constshallowClone=obj=>Object.assign({},obj);示例浅克隆一个对象:consta={x:true,y:1};constb=shallowClone(a);//a!==b 返回总目录每天 30 秒系列之 JavaScript 代码
25 08 月 2020 对键进行重命名 2020-08-20 描述根据提供的键值对将对象中的多个键进行重命名。提示在 Object.keys()的返回值上使用 Array.prototype.reduce()以获取对象的所有键通过扩展运算符(...)和 keysMap 对其匹配的键进行重命名代码 constrenameKeys=(keysMap,obj)=>Object.keys(obj).reduce((acc,key)=>({...acc,...
25 08 月 2020 根据函数动态选取需要的键值对 2020-08-19 描述当每一个键值对使用给定的函数返回真值时,就将他们组合成一个新的对象。该函数调用两个参数:(值,键)。提示使用 Object.keys(obj)和 Array.prototype.filter()来移除 fn 返回假值的键值对使用 Array.prototype.reduce()将过滤出的键转换回包含其键值对的对象代码 constpickBy=(obj,fn)=>Object.keys(o
25 08 月 2020 选取需要的键值对 2020-08-18 描述根据给定的键,从对象中选取与之对应的键值对。提示使用 Array.prototype.reduce()如果键存在于对象中,则将过滤出/选中的键转换回包含其键值对的对象代码 constpick=(obj,arr)=>arr.reduce((acc,curr)=>(currinobj&&(acc[curr]=obj[curr]),acc),{});示例返回对象中键为 a,c 的新对象:p
17 08 月 2020 根据指定属性和排序规则为数组进行排序 2020-08-17 描述将数组对象根据指定的属性和排序方式进行排序。提示使用 Array.prototype.sort()在给定的 props 数组上使用默认值为 0 的 Array.prototype.reduce()方法根据传如的排序规则使用数组解构来交换其属性位置 orders 数组的默认值为'asc'代码 constorderBy=(arr,props,orders)=>[...arr].sort((a,b)
17 08 月 2020 根据规则批量移除对象中不需要的键值对 2020-08-14 描述一个对象中的属性如果经过给定的函数运行后返回假值,就将其键值对组合为一个新的对象。提示使用 Object.keys(obj)和 Array.prototype.filter()移除 fn 返回为真值的键使用 Array.prototype.reduce()根据过滤后的键,新建一个对应的键值对对象代码 constomitBy=(obj,fn)=>Object.keys(obj).filte
17 08 月 2020 批量移除对象中不需要的键值对 2020-08-13 描述根据给定的键值,将一个对象中于此对应的键值对进行过滤。提示使用 Object.keys(obj),Array.prototype.filter()和 Array.prototype.includes()将提供的键值进行移除使用 Array.prototype.reduce()根据过滤后的键,新建一个对应的键值对对象代码 constomit=(obj,arr)=>Object.keys
17 08 月 2020 将对象转换为 URL 中的额外参数 2020-08-12 描述根据给定对象的键值对生成查询字符串。提示在 Object.entries(queryParameters)基础上使用 Array.prototype.reduce()来创建查询字符串基于 queryString 的 length 来判断 symbol 是否为?或者&仅当值为一个字符串时,才将'val'添加到 queryString 中当 queryParameters 为假值的时候返回空字符串,否则
11 08 月 2020 使用 `Object.entries` 将对象转换为带键值对的数组 2020-08-11 描述将一个对象转换为带有键值对的数组。提示使用 Object.entries()从给定的对象总获取一个带有键值对的数组代码 constobjectToPairs=obj=>Object.entries(obj);示例将对象转换为带键值对的数组:objectToPairs({a:1,b:2});//[["a",1],["b",2]]返回总目录每天 30 秒系列之 JavaScript 代码
11 08 月 2020 对象转换为带键值对的数组 2020-08-10 描述将一个对象转换为带有键值对的数组。提示使用 Object.keys()和 Array.prototype.map()迭代对象中的每一个键将迭代到的对象转换为一个带键值对的数组代码 constobjectToEntries=obj=>Object.keys(obj).map(k=>[k,obj[k]]);示例将对象转换为带键值对的数组:objectToEntries({a:1,b:2
11 08 月 2020 将键值数组转换为对象 2020-08-07 描述根据给定的键值对创建一个对象。提示使用 Array.prototype.reduce()创建并组合键值对。代码 constobjectFromPairs=arr=>arr.reduce((a,[key,val])=>((a[key]=val),a),{});示例将数组转换为对象:objectFromPairs([['a',1],['b',2]]);//{a:1,b:2}返回总目录
06 08 月 2020 关联数组转换为树对象 2020-08-06 描述将一个平铺的有相互关联关系的数组对象转换为一个使用递归嵌套的树形对象。这对嵌套评论非常有用,例如:reddit.com。提示使用递归使用 Array.prototype.filter()过滤出同一链接关系的所有节点使用 Array.prototype.map()迭代每一个过滤出来的新对象,并为其添加一个 chinldren 属性,该属性值使用递归嵌套获取当前节点的所有子节点第二个参数
06 08 月 2020 合并多个对象 2020-08-05 描述通过组合两个或更多个对象来获取一个新的对象。提示通过使用 Array.prototype.reduce()和 Object.keys(obj)的组合,以迭代所有的对象及其每一个键使用 hasOwnProperty()和 Array.prototype.concat()添加存在多个对象中的键值代码 constmerge=(...objs)=>[...objs].reduce((acc,o
04 08 月 2020 基于提供的函数判断第一个对象是否包含了第二个对象 2020-08-04 描述基于提供的函数对两个对象进行比较,以确定第一个对象中是否包含有第二个对象中相同的属性值。提示使用 Object.keys()获取第二个对象的所有键使用 Array.prototype.every()和 Object.hasOwnProperty()和提供的函数来检测与第一个对象中所有的键是否有相同的值如果没有提供函数的话,就使用全等操作进行值的相等判断代码 constmatchesW
04 08 月 2020 第一个对象是否包含了第二个对象的属性及值 2020-08-03 描述对两个对象进行比较,以确定第一个对象中是否包含有第二个对象中相同的属性值。提示使用 Object.keys()获取第二个对象的所有键使用 Array.prototype.every()和 Object.hasOwnProperty()进行严格的对比检测判断第二个对象中的所有键是否都存在第一个对象中,并且他们是否有着相同的值代码 constmatches=(obj,source)=>O
31 07 月 2020 根据指定规则修改对象中的值 2020-07-31 描述创建一个对象,他的值为原有对象的每一个值经过提供函数运行后的结果,但键还是原有提供对象的键。提示使用 Object.keys()迭代对象的键使用 Array.prototype.reduce()创建一个新的对象,使其有着相同的键和经过 fn 映射的值代码 constmapValues=(obj,fn)=>Object.keys(obj).reduce((acc,k)=>{acc[k]=