实现 parse 取值函数
let obj = { a: 1, b: { c: 2 }, d: [1, 2, 3, 4], e: [{ f: [5, 6] }] } let r1 = parse(obj, 'a') let r2 = parse(obj, 'b.c') let r3 = parse(obj, 'd[2]') let r4 = parse(obj, 'e[0].f[0]')
实现方案 1 new Function
function parse(obj, str) { let fn = new Function('obj', 'return obj.' + str) return fn(obj) }
实现方案 2 split
function parse(obj, str) { str = str.replace(/\[(\d+)\]/g, '.$1') let arr = str.split('.') arr.forEach(item => { obj = obj[item] }) return obj }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论