设置和检索javascript对象的值
Setting and retrieveing value from javascript objects
我刚刚开始使用javascript,想问一个问题(显然:p)我写了两个方法,一个是从对象中获取值,基于它的数据路径(数据路径是一个对象中的结构,像这样:"object. subobject . anothersubobject .property"),另一个基于数据路径为对象设置值。
下面是用typescript写的代码:
public getValueFromObject(object:any, path:string|string[], thisArg:any = null):any {
thisArg = thisArg == null ? this : thisArg;
var value:any = null;
if (object == null || object == undefined || object == "undefined")
return value;
if (path == null || path == undefined || path == "undefined" || path == "")
return value;
if (typeof path == "string" && !Array.isArray(path)) {
path = (<string>path).split(".");
}
var currPath:string = path[0];
if (path.length > 1 && object.hasOwnProperty(currPath)) {
value = thisArg.getValueFromObject(object[currPath], path.slice(1), thisArg);
}
else if (object.hasOwnProperty(currPath)) {
value = object[currPath];
}
return value;
}
private setValueToObject(dataObject:any, value:any, dataPath:string|string[], thisArg:any = null):any {
thisArg = thisArg == null ? this : thisArg;
if (dataObject == null || dataObject == undefined || dataObject == "undefined")
return null;
if (dataPath == null || dataPath == undefined || dataPath == "undefined" || dataPath == "")
return null;
if (typeof dataPath == "string" && !Array.isArray(dataPath)) {
dataPath = (<string>dataPath).split(".");
}
var currPath:string = dataPath[0];
if (dataPath.length > 1) {
if (!dataObject.hasOwnProperty(currPath)) {
dataObject[currPath] = {};
}
dataObject[currPath] = thisArg.setValueToObject(dataObject[currPath], value, dataPath.slice(1), thisArg);
}
else {
dataObject[currPath] = value;
}
return dataObject;
}
现在,我想知道,这是一个写得很好的javascript代码,是否有任何库可以做同样的事情,我想要实现?也许lodash ?如果有人能提供一个示例代码,我将非常感激。
提前感谢。
对象是相当可塑的javascript,因为它是。
启动对象
var myobj = {
var1: 'hello'
}
得到var1
console.log(myobj.var1) // 'hello'
设置var1
myobj.var1 = 'world'
再次获取var1
console.log(myobj.var1) // 'world'
把所有这些放在一起输出'hello world'到您的控制台
var myobj = { var1: 'hello' };
console.log(myobj.var1);
myobj.var1 = 'world';
console.log(myobj.var1);
除此之外,你的代码看起来还不错。"剥猫皮的方法不止一种",而且在为乐趣而编程时,没有哪一种方法比另一种更好。像你那样写东西是很好的练习。您还应该知道在生产环境中改进代码的更快的方法。
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值