摘要:有如下多层嵌套的对象方法或方法方法方法方法如果有更好的方式,欢迎补充
有如下多层嵌套的对象:
var obj = { l1: { l2: { l3: "Hello World" } } }
方法1:
var r = (((obj || {}).l1 || {}).l2 || {}).l3;
或
var r = obj.l1 && obj.l1.l2 && obj.l1.l2.l3
方法2:
let delve = (obj, key) => (key.split(".").map(p => (obj = obj && obj[p])), obj); console.log(delve(obj, "l1.l2.l3")); // Hello World
方法3:
function checkNested(obj, key, ...rest) { if (obj === undefined || obj === null) return false; if (rest.length == 0 && obj.hasOwnProperty(key)) return true; return checkNested(obj[key], ...rest); } console.log(checkNested(obj, "l1", "l2", "l3")); // true
方法4:
function validChain(obj, ...keys) { return keys.reduce((obj, key) => (obj || {})[key], obj) !== undefined } console.log(validChain(obj, "l1", "l2", "l3")); // true
方法5:
function objHasKeys(obj, keys) { var next = keys.shift(); return obj[next] && (! keys.length || objHasKeys(obj[next], keys)); }
如果有更好的方式,欢迎补充
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/110247.html
摘要:根据标准,到目前为止,一共有种缓存机制,有些是之前已有,有些是才新加入的。首次请求缓存有效期内请求缓存过期后请求一般浏览器会将缓存记录及缓存文件存在本地文件夹中。 腾讯 Bugly 特约作者:贺辉超 1. H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离线存储,这意味着 web ...
摘要:如果形参有设置默认值,第二个就被建立,他针对的是函数体内的声明我们可以形象的理解为这是一个除了函数作用域和块级作用域之外的第三作用域。 开门见山,我们来看看下面这个有趣的例子 showImg(http://ogitl0zvo.bkt.clouddn.com/public/16-11-12/77445738.jpg); 对于上面这种用var的声明方式,无论x的默认值为什么,只要形参中出...
摘要:在浏览区中的性能,可以认为是开发者所面临的最严重的可用性问题。优化这个问题的第一步从它的加载和执行开始。这意味着在对象的事件触发后再下载脚本。属性指明本元素所含的脚本不会修改,因此代码能够安全地执行,但是浏览器的支持情况不理想。 JavaScript在浏览区中的性能,可以认为是开发者所面临的最严重的可用性问题。 优化这个问题的第一步从它的加载和执行开始。 霸道的script标签scr...
阅读 1741·2021-09-22 15:10
阅读 1228·2021-09-07 09:58
阅读 2318·2019-08-30 15:44
阅读 1617·2019-08-26 18:29
阅读 2011·2019-08-26 13:35
阅读 735·2019-08-26 13:31
阅读 660·2019-08-26 11:42
阅读 1050·2019-08-23 18:39