🎶 Sym - 一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)平台

📕 思源笔记 - 一款桌面端笔记应用,支持 Windows、Mac 和 Linux

🎸 Solo - B3log 分布式社区的博客端节点,欢迎加入下一代社区网络

♏ Vditor - 一款浏览器端的 Markdown 编辑器

  每天 30 秒系列

每天 30 秒系列前端精选问题集,每天仅需 30 秒前端面试精选常见面试题,帮助您准备下一次面试 HTMLCSSJavaScriptReactNodeSecurityCSS 精选常见交互,帮助您拥有简洁酷炫的站点布局视觉动画交互其他 React 精选有用的 React 片段,帮助你获取最佳实践 ArrayInputObjectVisualJavaScriptCode 精选常见代码集,帮助您提高打码效率 🔌 适配器 📚 数组 🌐 浏览器

将一个对象转换为由键值对数组组成的二维数组

2020-08-25 描述从一个对象或其他迭代(对象,数组、字符串、集合等)中创建一个由键值对数组组成的数组。提示检查 Symbol.iterator 是否被定义如果是的话,使用 Array.prototype.entries()为给定的可迭代对象获取他的迭代器使用 Array.from()将结果转换为一个包含键值对数组的数组如果 Symbol.iterator 没有在 obj 中定义,则使用 Object.entri

获取各类型值的长度

2020-08-24 描述获取一个数组、对象或字符串的长度。提示获取 val 的类型(array,object 或者 string)数组使用 length 属性如果 length 或者 size 可用的话就使用他们,否则的话使用对象拥有键的数量如果 val 为字符串的话就使用其创建一个 Blob 对象,然后返回该对象的 size 使用 split('')将字符串的每一个字符都分别分割到数组中,然后返回该数组的长度代码 constsize

浅克隆

2020-08-21 描述为一个对象进行浅克隆。提示使用 Object.assign()和空对象({})为原始对象创建一个浅克隆代码 constshallowClone=obj=>Object.assign({},obj);示例浅克隆一个对象:consta={x:true,y:1};constb=shallowClone(a);//a!==b 返回总目录每天 30 秒系列之 JavaScript 代码

对键进行重命名

2020-08-20 描述根据提供的键值对将对象中的多个键进行重命名。提示在 Object.keys()的返回值上使用 Array.prototype.reduce()以获取对象的所有键通过扩展运算符(...)和 keysMap 对其匹配的键进行重命名代码 constrenameKeys=(keysMap,obj)=>Object.keys(obj).reduce((acc,key)=>({...acc,...

根据函数动态选取需要的键值对

2020-08-19 描述当每一个键值对使用给定的函数返回真值时,就将他们组合成一个新的对象。该函数调用两个参数:(值,键)。提示使用 Object.keys(obj)和 Array.prototype.filter()来移除 fn 返回假值的键值对使用 Array.prototype.reduce()将过滤出的键转换回包含其键值对的对象代码 constpickBy=(obj,fn)=>Object.keys(o

选取需要的键值对

2020-08-18 描述根据给定的键,从对象中选取与之对应的键值对。提示使用 Array.prototype.reduce()如果键存在于对象中,则将过滤出/选中的键转换回包含其键值对的对象代码 constpick=(obj,arr)=>arr.reduce((acc,curr)=>(currinobj&&(acc[curr]=obj[curr]),acc),{});示例返回对象中键为 a,c 的新对象:p

根据指定属性和排序规则为数组进行排序

2020-08-17 描述将数组对象根据指定的属性和排序方式进行排序。提示使用 Array.prototype.sort()在给定的 props 数组上使用默认值为 0 的 Array.prototype.reduce()方法根据传如的排序规则使用数组解构来交换其属性位置 orders 数组的默认值为'asc'代码 constorderBy=(arr,props,orders)=>[...arr].sort((a,b)

根据规则批量移除对象中不需要的键值对

2020-08-14 描述一个对象中的属性如果经过给定的函数运行后返回假值,就将其键值对组合为一个新的对象。提示使用 Object.keys(obj)和 Array.prototype.filter()移除 fn 返回为真值的键使用 Array.prototype.reduce()根据过滤后的键,新建一个对应的键值对对象代码 constomitBy=(obj,fn)=>Object.keys(obj).filte

批量移除对象中不需要的键值对

2020-08-13 描述根据给定的键值,将一个对象中于此对应的键值对进行过滤。提示使用 Object.keys(obj),Array.prototype.filter()和 Array.prototype.includes()将提供的键值进行移除使用 Array.prototype.reduce()根据过滤后的键,新建一个对应的键值对对象代码 constomit=(obj,arr)=>Object.keys

将对象转换为 URL 中的额外参数

2020-08-12 描述根据给定对象的键值对生成查询字符串。提示在 Object.entries(queryParameters)基础上使用 Array.prototype.reduce()来创建查询字符串基于 queryString 的 length 来判断 symbol 是否为?或者&仅当值为一个字符串时,才将'val'添加到 queryString 中当 queryParameters 为假值的时候返回空字符串,否则

使用 `Object.entries` 将对象转换为带键值对的数组

2020-08-11 描述将一个对象转换为带有键值对的数组。提示使用 Object.entries()从给定的对象总获取一个带有键值对的数组代码 constobjectToPairs=obj=>Object.entries(obj);示例将对象转换为带键值对的数组:objectToPairs({a:1,b:2});//[["a",1],["b",2]]返回总目录每天 30 秒系列之 JavaScript 代码

对象转换为带键值对的数组

2020-08-10 描述将一个对象转换为带有键值对的数组。提示使用 Object.keys()和 Array.prototype.map()迭代对象中的每一个键将迭代到的对象转换为一个带键值对的数组代码 constobjectToEntries=obj=>Object.keys(obj).map(k=>[k,obj[k]]);示例将对象转换为带键值对的数组:objectToEntries({a:1,b:2

将键值数组转换为对象

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}返回总目录

关联数组转换为树对象

2020-08-06 描述将一个平铺的有相互关联关系的数组对象转换为一个使用递归嵌套的树形对象。这对嵌套评论非常有用,例如:reddit.com。提示使用递归使用 Array.prototype.filter()过滤出同一链接关系的所有节点使用 Array.prototype.map()迭代每一个过滤出来的新对象,并为其添加一个 chinldren 属性,该属性值使用递归嵌套获取当前节点的所有子节点第二个参数

合并多个对象

2020-08-05 描述通过组合两个或更多个对象来获取一个新的对象。提示通过使用 Array.prototype.reduce()和 Object.keys(obj)的组合,以迭代所有的对象及其每一个键使用 hasOwnProperty()和 Array.prototype.concat()添加存在多个对象中的键值代码 constmerge=(...objs)=>[...objs].reduce((acc,o

基于提供的函数判断第一个对象是否包含了第二个对象

2020-08-04 描述基于提供的函数对两个对象进行比较,以确定第一个对象中是否包含有第二个对象中相同的属性值。提示使用 Object.keys()获取第二个对象的所有键使用 Array.prototype.every()和 Object.hasOwnProperty()和提供的函数来检测与第一个对象中所有的键是否有相同的值如果没有提供函数的话,就使用全等操作进行值的相等判断代码 constmatchesW

第一个对象是否包含了第二个对象的属性及值

2020-08-03 描述对两个对象进行比较,以确定第一个对象中是否包含有第二个对象中相同的属性值。提示使用 Object.keys()获取第二个对象的所有键使用 Array.prototype.every()和 Object.hasOwnProperty()进行严格的对比检测判断第二个对象中的所有键是否都存在第一个对象中,并且他们是否有着相同的值代码 constmatches=(obj,source)=>O

根据指定规则修改对象中的值

2020-07-31 描述创建一个对象,他的值为原有对象的每一个值经过提供函数运行后的结果,但键还是原有提供对象的键。提示使用 Object.keys()迭代对象的键使用 Array.prototype.reduce()创建一个新的对象,使其有着相同的键和经过 fn 映射的值代码 constmapValues=(obj,fn)=>Object.keys(obj).reduce((acc,k)=>{acc[k]=