Javascript 获取以字符串形式返回的对象名称
假设我有这样一个代码:Javascript 获取以字符串形式返回的对象名称,javascript,arrays,Javascript,Arrays,假设我有这样一个代码: var object = { property_1:'value_1' } var arr = [object] arr[0].name /*return 'object'*/ 我希望能够获取以字符串形式返回的对象名称。所以它看起来像这样: var object = { property_1:'value_1' } var arr = [object] arr[0].name /*return 'object'*/ 或 这显然不是一个有效的代码
var object = {
property_1:'value_1'
}
var arr = [object]
arr[0].name /*return 'object'*/
我希望能够获取以字符串形式返回的对象名称。所以它看起来像这样:
var object = {
property_1:'value_1'
}
var arr = [object]
arr[0].name /*return 'object'*/
或
这显然不是一个有效的代码,但是有没有真正能够做到这一点的代码?有没有真正能够做到这一点的代码? 否。
var对象
不是您分配给数组的内容,它的内容是您分配给数组的内容
var object = {
property_1:'value_1'
}
var arr = [object]
同:
var object1 = {
property_1:'value_1'
}
var object2 = object1;
arr = [object2];
在第二个示例中,object1、object2和arr[0]都指向同一个对象,而该对象没有名称。是否有任何方法可以做到这一点? 否。
var对象
不是您分配给数组的内容,它的内容是您分配给数组的内容
var object = {
property_1:'value_1'
}
var arr = [object]
同:
var object1 = {
property_1:'value_1'
}
var object2 = object1;
arr = [object2];
在第二个示例中,object1、object2和arr[0]都指向同一个对象,而该对象没有名称。不可能执行您想要的操作。但是,您可以执行以下操作:
var objects = {
object1: {
property_1:'value_1'
},
object2: {
property_1:'value_2'
}
};
// Use this to get an array with the names
function getNames() {
return Object.keys(objects);
}
// Use this to get the properties of an object by it's given name
function getProps(name) {
return objects[name];
}
执行示例:
var names = getNames();
for(i = 0; i < names.length; i++) {
var name = names[i];
var values = getProps(name);
console.log(name);
console.log(values);
console.log(values.property_1);
}
所有这些都是考虑到您正在使用ES5。
使用ES6,您只需执行以下操作即可获得对象名称和属性的列表:
Object.keys(objects).map(key => ({name: key, properties: objects[key]}))
我希望这对你有所帮助 不可能做你想做的事。但是,您可以执行以下操作:
var objects = {
object1: {
property_1:'value_1'
},
object2: {
property_1:'value_2'
}
};
// Use this to get an array with the names
function getNames() {
return Object.keys(objects);
}
// Use this to get the properties of an object by it's given name
function getProps(name) {
return objects[name];
}
执行示例:
var names = getNames();
for(i = 0; i < names.length; i++) {
var name = names[i];
var values = getProps(name);
console.log(name);
console.log(values);
console.log(values.property_1);
}
所有这些都是考虑到您正在使用ES5。
使用ES6,您只需执行以下操作即可获得对象名称和属性的列表:
Object.keys(objects).map(key => ({name: key, properties: objects[key]}))
我希望这对你有所帮助 这是不可能的。对象不知道哪些变量引用它们。@Clonkex他不需要属性名,他需要变量名。
'object'
不是对象名。它只是一个变量,碰巧有对象作为它的值。许多变量可以有相同的值,哪一个是它的“名称”?@Barmar哦,是的,我对我的标志太仓促了。不知道我是否能收回它。哦,等等,是的,我可以,收回。@Barmar这个名字没有意义。我使用.name作为理论上的内置属性,返回对象名称以明确我想要的内容。这是不可能的。对象不知道哪些变量引用它们。@Clonkex他不需要属性名,他需要变量名。'object'
不是对象名。它只是一个变量,碰巧有对象作为它的值。许多变量可以有相同的值,哪一个是它的“名称”?@Barmar哦,是的,我对我的标志太仓促了。不知道我是否能收回它。哦,等等,是的,我可以,收回。@Barmar这个名字没有意义。我使用.name作为理论上的内置属性,返回对象名称以明确我想要的内容。