javascript 访问深层嵌套的属性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 访问深层嵌套的属性相关的知识,希望对你有一定的参考价值。
function get(obj, props, def) {
if (obj == null || typeof props !== "string") return def;
const temp = props.split(".");
const fieldArr = [].concat(temp);
temp.forEach((e, i) => {
if (/^(\w+)\[(\w+)\]$/.test(e)) {
const matches = e.match(/^(\w+)\[(\w+)\]$/);
const fieldOne = matches[1];
const fieldTwo = matches[2];
const index = fieldArr.indexOf(e);
fieldArr.splice(index, 1, fieldOne, fieldTwo);
}
});
return fieldArr.reduce((pre, cur) => {
const target = pre[cur] || def;
if (target instanceof Array) {
return [].concat(target);
}
if (target instanceof Object) {
return Object.assign({}, target);
}
return target;
}, obj);
}
// test
var c = { a: { b: [1, 2, 3] } };
get(c, "a.b"); // [1,2,3]
以上是关于javascript 访问深层嵌套的属性的主要内容,如果未能解决你的问题,请参考以下文章
javascript 深层嵌套打印对应的关键值
Json Schema:仅当深层嵌套对象中存在特定属性时才需要属性
如何访问深层嵌套父级中的方法 [Vue][Vuetify]
使用 Python 访问 HTML <script> 标记内的深层嵌套数据
Map list深层嵌套访问增强工具,可以像js 对象一样访问
Vue:深层嵌套对象上的观察者会记录 oldVal 和 newVal 吗?