getPropByPath:根据字符串路径获取对象属性 : 'obj[0].count'
function getPropByPath(obj, path, strict) {
let tempObj = obj;
path = path.replace(/\[(\w+)\]/g, '.$1'); //将[0]转化为.0
path = path.replace(/^\./, ''); //去除开头的.
let keyArr = path.split('.'); //根据.切割
let i = 0;
for (let len = keyArr.length; i < len - 1; ++i) {
if (!tempObj && !strict) break;
let key = keyArr[i];
if (key in tempObj) {
tempObj = tempObj[key];
} else {
if (strict) {//开启严格模式,没找到对应key值,抛出错误
throw new Error('please transfer a valid prop path to form item!');
}
break;
}
}
return {
o: tempObj, //原始数据
k: keyArr[i], //key值
v: tempObj ? tempObj[keyArr[i]] : null // key值对应的值
};};
getPropByPath:根据字符串路径获取对象属性 : 'obj[0].count'的更多相关文章
- js 获取对象属性个数
js 获取对象属性个数 方法一: var attributeCount = function(obj) { var count = 0; for(var i in obj) { if(obj.hasO ...
- JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别
JS中isPrototypeOf 和hasOwnProperty 的区别 1.isPrototypeOf isPrototypeOf是用来判断指定对象object1是否存在于另一个对象object2的 ...
- 转: JavaScript 获取对象属性和方法
一.获取对象属性和方法 Object.keys()for in 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返回的数组的所有属性(可枚举或不可枚举 ...
- js 获取 this 的属性 obj[0].getAttribute
js 获取 this 的属性 obj[0].getAttribute
- JavaScript 获取对象属性和方法
ShineJaie 原创整理,转载请注明出处. 一.获取对象属性和方法 Object.keys() 返回对象的可枚举属性和方法的名称数组. Object.getOwnPropertyNames() 返 ...
- EL表达式获取对象属性的原理
EL表达式获取对象属性的原理是这样的: 以表达式${user.name}为例 EL表达式会根据name去User类里寻找这个name的get方法,此时会自动把name首字母大写并加上get前缀,一旦找 ...
- 【java】java获取对象属性类型、属性名称、属性值
java获取对象属性类型.属性名称.属性值 获取属性 修饰符:[在Field[]循环中使用] String modifier = Modifier.toString(fields[i].getModi ...
- 获取对象属性类型、属性名称、属性值的研究:反射和JEXL解析引擎
同步发布:http://www.yuanrengu.com/index.php/20170511.html 先简单介绍下反射的概念:java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所 ...
- JS获取对象“属性和方法”的方法
平时在写的代码过程中,经常会遇到对对象Object的数据处理.而在对对象的数据处理中,操作最频繁的是“数据引用”.“值的修改”.“获取关键字(属性)”.平时最烦的也是“获取关键字”,经常忘记怎么去获取 ...
- python遍历并获取对象属性--dir(),__dict__,getattr,setattr
一.遍历对象的属性: 1.dir(obj) :返回对象的所以属性名称字符串列表(包括属性和方法). for attr in dir(obj): print(attr) 2.obj.__dict__:返 ...
随机推荐
- 【CMake系列】02-第一个CMake项目
本节我们用CMake 构建我们的第一个helloword的项目,从更细的粒度上了解CMake在做什么,对编写CMakeLists.txt 进入初步引入 本专栏的实践代码全部放在 github 上,欢迎 ...
- 短视频SDK 视频编辑SDK AE模版SDK 人体抠图SDK 绿幕抠图SDK
优势: 快速接入免费试用名称: 短视频SDK品牌: 蓝松SDK特色: 一站式视音频解决方案 杭州蓝松科技有限公司,多年来一直专注于音视频领域核心技术的研发.核心研发团队掌握的行业领先技术,目前 ...
- 前后端分离使用mp遇到问题
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-s ...
- Mac 右键菜单中出现多个 Edge 版本解决方法
cd "/Applications/Microsoft Edge.app/Contents/Frameworks/Microsoft Edge Framework.framework/Ver ...
- 阿里云【七天深入MySQL实战营】
阿里云[七天深入MySQL实战营] 最近报名了阿里云[七天深入MySQL实战营].不过一直没时间看[最主要还是自己懒],看了下课程及答疑信息,感觉应该还可以,分享出来和大家一起学习学习.现在课程已经 ...
- C#自定义控件—仪表盘
C#用户控件之仪表盘 如何让温度.湿度.压力等有量程的监控值如仪表盘(DashBoard)一样显示? 思路(GDI绘图): 定义属性:(仪表盘的半径.颜色.间隙:刻度圆的半径.颜色.字体:指针的颜色. ...
- Dell R920 服务器iDrac口默认账号密码和IP
Dell服务器iDrac口默认账号密码和IP 账号:root 密码:calvin IP:192.168.0.120/24
- C#阿里境外服务器部署企业邮箱发邮件代码
static string accountName = "发件人邮箱"; static string password = "发件人邮箱密码"; static ...
- 海光 FTPM 运行报错:Fapi_Provision_Finish() ErrorCode (0x00060025) No EK certificate found.
使用的是海光 CPU 提供的基于固件的 FTPM,错误原因是海光没有给 TPM 提供相应的 EK 证书.从而导致Fapi_Provision()接口无法通过证书的校验.关于Fapi_Provision ...
- Angular Material 18+ 高级教程 – Custom Themes for Material Design 3 (自定义主题 Material 3)
v18 更新重要说明 从 Angular Material v18 开始,默认使用的是 Material 3 Design (简称 M3). 而且是正式版,不再是 experimental previ ...