我正在尝试访问对象中的属性并将其返回。
请注意,对象的名称可能会更改,因此使用{
"title_can_change":{
property: 1
}
}
访问该名称将无效。
采取以下对象:
apiData:{
"apiName":{
price: 500
}
}
如何返回'属性'?
的值更多信息:
此对象是从搜索中返回的,该搜索包含来自多个API的结果数组。返回此对象以详细说明结果来自的API(搜索通过几个API)。
所以这更像是:
l_1, l_2, ..., l_n
" apiName"没有修复,更改为API的名称。所以它不能被" apiName'引用。在任何代码中。
答案 0 :(得分:0)
如果此object
是全局的,那么您可以使用window['title_can_change']['property']
。如果它只是另一个对象的另一个属性(称为another_one),则可以使用another_one['title_can_change']['property']
访问它。
此外:您可以拥有一个变量(让我们称之为title_name
)以简化通话:
....
var title_name = "title_can_change";
var myObj = window[title_name]['property'];
title_name = "title_has_changed";
var anotherObj = window[title_name]['property'];
.....
OR
....
var title_name = "title_can_change";
var myObj = another_one[title_name]['property'];
title_name = "title_has_changed";
var anotherObj = another_one[title_name]['property'];
.....
答案 1 :(得分:0)
您可以创建一个函数来返回传递给它的任何对象的属性值:
var getProperty = function(obj) {
return obj.property;
};
答案 2 :(得分:0)
如果你有一个对象并且想要访问它的第一个键的值,你可以使用这样的东西(脏例子):
var myObj = {
"title_can_change"{
property: 1
}
}
myObj[Object.keys(myObj)[0]];
我回家帮忙。
答案 3 :(得分:0)
所以我想我知道你想要什么,这是一个低级别的解决方案,可能证明有价值,并向你展示一些关于语言的好东西。
https://jsfiddle.net/s10pg3sh/1/
function CLASS(property) {
// Set the property on the class
this.property = property || null;
}
// Add a getter for that property to the prototype
CLASS.prototype.getProperty = function() {
return this['property'];
}
var obj = new CLASS(9);
alert(obj.getProperty());
你在上面做的是创建一个"类"为你的新变量。当您使用new
关键字创建对象时,您仍然可以获得正常的JS对象(无论如何都是一个对象),但您可以方便地使用getProperty
方法。在原型上,确保您创建的任何new CLASS
变量都具有该方法。您可以更改变量名称,并且您可以通过访问实例(变量)始终访问该属性。这是一个非常常见的OO范例,并且是原型语言的优势,所以虽然它可能超出您的需求,我想我会在这里添加它作为答案......
答案 4 :(得分:0)
这里有一种猜测,因为这个问题仍然有些不清楚。我假设您要迭代名称未知的对象属性。
这可能是一个解决方案。
{{1}}
答案 5 :(得分:-6)
使用for...in
迭代对象的键并检查内部对象是否包含您的属性
var o = {
"title_can_change":{
property: 1
}
};
for (var k in o) {
if (o.hasOwnProperty(k) && o[k].property) {
return o[k].property;
}
}