在某些场景下,开发人员经常会遇到复杂嵌套的数据结构,并面临使用字符串访问其中特定值的挑战作为路径。
例如,考虑以下对象:
var someObject = { 'part1': { 'name': 'Part 1', 'size': '20', 'qty': '50' }, 'part2': { 'name': 'Part 2', 'size': '15', 'qty': '60' }, 'part3': [ { 'name': 'Part 3A', 'size': '10', 'qty': '20' }, { 'name': 'Part 3B', 'size': '5', 'qty': '20' }, { 'name': 'Part 3C', 'size': '7.5', 'qty': '20' } ] };
要检索使用字符串路径嵌套值,可以采用以下技术:
使用 Object.byString 实用函数,您可以遍历对象并访问特定的对象值:
Object.byString = function(o, s) { s = s.replace(/\[(\w+)\]/g, '.'); // convert indexes to properties s = s.replace(/^\./, ''); // strip a leading dot var a = s.split('.'); for (var i = 0, n = a.length; i < n; ++i) { var k = a[i]; if (k in o) { o = o[k]; } else { return; } } return o; };
用法:
Object.byString(someObject, 'part3[0].name'); // "Part 3A"
jQuery 的 $.val() 方法也可用于导航嵌套对象和数组:
$.val('part1.name', someObject); // "Part 1" $.val('part2.qty', someObject); // 60 $.val('part3[0].name', someObject); // "Part 3A"
两种方法都提供了通过字符串路径访问嵌套结构中的数据的便捷方法,从而简化了处理和操作复杂的数据。
以上是如何使用字符串路径访问嵌套的 JavaScript 对象和数组?的详细内容。更多信息请关注PHP中文网其他相关文章!