栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

引用JSON树结构的分支的最佳方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

引用JSON树结构的分支的最佳方法是什么?

什么

link: 'tree.options[0].options[0]'
然后
eval(path.to.link)

以下样品仅使用Chrome进行测试。所有同一个树:

var tree = { level1: [{ key: 'value' }] };

没有
eval

function resolve(root, link) {    return (new Function('root', 'return root.' + link + ';'))(root);}var value = resolve(tree, path.to.link);

退回至
window

function resolve(root, link) {    return (new Function(        'root', 'return root.' + (link || root) + ';'    ))(link ? root : window);}resolve(tree, 'level1[0].key'); // "value"resolve('tree.level1[0].key'); // "value"

捕捉错误

try / catch块可防止断开的链接引发错误。

function resolve(root, path) {    try {        return (new Function('root', 'return root.' + path + ';'))(root);    } catch (e) {}}resolve(tree, 'level1[0].key'); // "value"resolve(tree, 'level1[1].key'); // undefined

使用自定义路径格式

这里的好处是我们可以将对象或数组作为传递

root
。还要注意,我们可以用
path.split('/')
我们选择的任何字符替换斜杠。

function resolve(root, path) {    path = '["' + path.split('/').join('"]["') + '"]';    return (new Function('root', 'return root' + path + ';'))(root);}resolve(tree.level1, '0/key'); // "value"resolve(tree, 'level1/0/key'); // "value"resolve(tree, 'level1/0'); // Object {key: "value"}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636720.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号