Javascript - 使用字符串作为对象引用
Javascript - use string as object reference
如果我有一堆对象,并且这些对象中有字符串"id"(与对象名称相同),如何使用此字符串来引用对象?
例:
//These objects are tests - note the id's are the same as the object name
var test1 = {
id : "test1",
data : "Test 1 test 1 test 1"
}
var test2 = {
id : "test2",
data : "Test 2 test 2 test 2"
}
/* ----- My Function ----- */
var myObj = null;
function setMyObj(obj){
myObj = obj;
}
setMyObj(test1);
/* ----- My Function ----- */
现在,如果我调用以下内容:
myObj.id;
结果是"test1"(字符串)。如果我想使用它从test1获取数据,我将如何做?
"myObj.id".data
[myObj.id].data
^^^
这些不起作用!
干杯富
如果您的变量是在全局范围内定义的,则以下工作
window[ myObj.id ].data
如果你在一个函数的范围内,事情就会变得困难得多。最简单的方法是在窗口的特定命名空间中定义对象,并检索类似于上述代码的对象。
将 test1 和 test2 存储在键值集合(也称为对象)中。然后像这样访问它:
collection[myObj.id].data
如果你想使用变量引用某物,那么就让它成为对象属性,而不是变量。如果它们足够相关,可以以这种方式访问,那么它们就足够相关,具有适当的数据结构来表达这种关系。
var data = {
test1: {
id: "test1",
data: "Test 1 test 1 test 1"
},
test2: {
id: "test2",
data: "Test 2 test 2 test 2"
}
};
然后,您可以访问:
alert( data[myObj.id] );
很好的答案,感谢您的帮助,以防将来有人发现它,这就是我将如何使用它:
var parent = {}
parent.test1 = {
id : "test1",
data : "Test 1 test 1 test 1"
}
parent.test2 = {
id : "test2",
data : "Test 2 test 2 test 2"
}
var myObj = null;
function setMyObj(obj){
myObj = obj;
}
setMyObj(parent.test1);
parent[myObj.id] = null;
//Test1 object is now null, not myObj!
相关文章:
- 如何使用object.assign()从其他对象引用基本对象属性
- 返回 JavaScript 类值而不是对象引用
- Facebook:当发布期望对象引用时显示打开的图形对话框
- Javascript-如何从字符串/对象引用回调
- 即使使用 angular.fromJson() 也无法从 json 对象访问字符串
- JSON.stringify抛出RangeError:大型对象的字符串长度无效
- 将其用于对象引用
- 如何将对象引用传递到 mootools 中另一个对象的构造函数中
- j查询对象到字符串请帮助
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- 在 Jquery 中,我可以存储对象引用并在以后使用它吗?
- 将对象函数传递给请求动画帧时丢失对象引用
- 如何将对象引用为字符串名称
- Javascript - 使用字符串作为对象引用
- 以点表示法转换字符串以获取对象引用
- 如何使用存储在变量中的对象引用作为字符串
- 字符串作为对象变量的对象引用
- 是否可以 1) 控制台.log函数中的参数名称?2) 输入一个字符串作为函数参数,但将其转换为对象引用
- HTML5 Local Storage 字符串化并存储每个对象引用
- Javascript字符串到对象引用(没有eval()或索引)