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

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

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

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

  每天 30 秒系列

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

使用 `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]=

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

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

将所有键转换为小写

2020-07-29 描述从指定的对象中创建一个新的对象,使其所有键都为小写。提示使用 Object.keys()和 Array.prototype.reduce()从指定对象中创建一个新的对象使用 String.toLowerCase()将原始对象中的的每一个键转换为小写代码 constlowercaseKeys=obj=>Object.keys(obj).reduce((acc,key)=>{acc[ke

将一个对象的键值进行调换

2020-07-28 描述在不修改的情况下,将一个对象中的键值对进行转换。转换后的值和每一个将要被转换的键相对应,他们是值相同的所有键组成的一个数组。如果提供了函数,则将该函数应用于每一个被转换了的键上。提示使用 Object.keys()和 Array.prototype.reduce()来转换一个对象中的键值对如果提供了函数的话,则进行调用第二个参数 fn 为可选值,应用于每一个被转换的键。默认为不运行。

如何实现一个单例用 JavaScript

2020-07-27 描述单例是一种面向对象的软件设计模式,用来确保给定的类只能被实例化一次,这在很多不同的情况下都非常有用,例如创建在应用程序之间共享的全局对象和组件。虽然 JavaScript 支持面向对象编程,但他并没有提供许多简单的方式来实现这个模式。说明 Proxyobject 虽然某些方面比较超前,但他最容易扩展。Proxy 对象可用于定义所谓的 traps,这些方法允许为某些操作,如属性查找、赋值等

如何阻止修改一个 JavaScript 对象

2020-07-24 描述在 JavaScript 中如何真正阻止对一个对象的修改。const 也可修改说明 JavaScript 中的对象是可修改的,无论你是否将他们定义为 const 变量。事实上,当使用 const 定义一个对象时,只能阻止他再次被赋值。然而,你可以给一个 const 对象或数组的属性进行再次赋值。代码 constmyObj={a:10,b:20,c:30};myObj.a=12;//{a:12,b:2

给定的多层键是否存在 JSON 对象中

2020-07-23 描述如果一个 JSON 对象中存在给定的目标键值就返回 true,否则的话返回 false。提示首先检查给定的 keys 是否为一个非空数组,如果为空的话,则提前返回 false 使用 Array.prototype.every()按顺序依次检查给定的每一个键是否都存在于 obj 对象的深层次中使用 Object.prototype.hasOwnProperty()检查 obj 是否没有拥有当前的键,使用 t

根据选择器获取对应的属性值

2020-07-22 描述根据给定的多个选择器,从一个对象中获取一组与之匹配的属性值。提示使用 Array.prototype.map()迭代每一个选择器使用 String.prototype.replace()将方括号替换为点使用 String.prototype.split('.')将每一个选择器都进行分割使用 Array.prototype.filter()移除空值使用 Array.prototype.r

获取属性值或继承属性值为函数的所有属性

2020-07-21 描述从一个对象本身(继承为可选项)的枚举属性中返回其值为函数的所有属性。提示使用 Object.keys(obj)迭代对象本身的所有属性如果 inherited 为 true,就使用 Object.get.PrototypeOf(obj)来获取对象所继承的属性使用 Array.prototype.filter()过滤掉值不为函数的属性值第二个参数 inherited 的默认值为 false,表示不

JavaScript - 从右到左为对象中的每一个属性进行回调

2020-07-20 描述倒序迭代一个对象中的所有属性,为其属性的每一个值都运行提供的回调函数。提示使用 Object.keys(obj)获取对象中的所有属性使用 Array.prototype.reverse()让他们倒序排列使用 Array.prototype.forEach()为每一个键值对运行提供的函数回调函数接受三个参数:值,键,对象本身代码 constforOwnRight=(obj,fn)=>O

JavaScript - 为对象中的每一个属性进行回调

2020-07-17 描述迭代一个对象中的所有属性,为其属性的每一个值都运行一个回调函数。提示使用 Object.keys(obj)获取对象中的所有属性使用 Array.prototype.forEach()为每一个键值对运行提供的函数回调函数接受三个参数:值,键,对象本身代码 constforOwn=(obj,fn)=>Object.keys(obj).forEach(key=>fn(obj[key],k