Javascript 仅通过属性值获取对象

Javascript 仅通过属性值获取对象,javascript,object,Javascript,Object,假设我有一个对象属性,它被传递到一个函数中。在本例中,“name”由'myObject.name'填充(其值为'Tom')-因此基本上'Tom'作为“name”传递到函数中 function(name) { do something //non-essential for my question } 是否可以仅通过拥有信息'Tom',获取对象,其中'Tom'是的属性?基本上,我希望得到myObject 谢谢:)不,那是不可能的 函数只知道它的一个参数指向字符串“Tom”,而不是指向内存

假设我有一个对象属性,它被传递到一个函数中。在本例中,“name”由
'myObject.name'
填充(其值为
'Tom'
)-因此基本上
'Tom'
作为“name”传递到函数中

function(name) {
    do something //non-essential for my question
}
是否可以仅通过拥有信息
'Tom'
,获取对象,其中
'Tom'
是的属性?基本上,我希望得到
myObject


谢谢:)

不,那是不可能的


函数只知道它的一个参数指向字符串“Tom”,而不是指向内存中其他地方的字符串。

不,这是不可能的


函数只知道它的一个参数指向字符串“Tom”,而不是指向内存中其他地方的字符串。

您可以将对象存储在数组中,使用
for..of
循环,
object.entries()
<,它返回一个属性数组,即对象的值

const data=Array();
const setObjectPropertyName=\u name=>{
数据推送({[\u name]:\u name});
返回数据
}
const getObjectByPropertyName=prop=>{
让res=`${prop}属性在数据“”中找不到;
对于(让obj表示数据){
for(让[key]的Object.entries(obj)){
如果(键===prop)返回obj;
}
}
返回res;
}
设s=setObjectPropertyName(“Tom”);
设g=getObjectByPropertyName(“Tom”);
let not=getObjectByPropertyName(“Tome”);

console.log(s,“\n”,g,“\n”,非)
您可以在数组中存储对象,使用
for..of
循环,
object.entries()
,过滤数组以将对象的属性名称与传递给函数的参数相匹配,该循环返回对象的属性、值数组

const data=Array();
const setObjectPropertyName=\u name=>{
数据推送({[\u name]:\u name});
返回数据
}
const getObjectByPropertyName=prop=>{
让res=`${prop}属性在数据“”中找不到;
对于(让obj表示数据){
for(让[key]的Object.entries(obj)){
如果(键===prop)返回obj;
}
}
返回res;
}
设s=setObjectPropertyName(“Tom”);
设g=getObjectByPropertyName(“Tom”);
let not=getObjectByPropertyName(“Tome”);

console.log(s,“\n”,g,“\n”,非)免责声明:您绝对不应该这样做。我之所以发布这篇文章,是因为它实际上是可能的(有一些警告),但实际上并不可取

假设这是在浏览器中运行的,并且它都在全局范围内运行(如在脚本标记中),您可以从技术上迭代
窗口
对象,检查窗口中的任何对象的名称属性,并确定其名称属性是否与传递给您的函数的名称匹配

var myObject={
名字:“汤姆”,
这是:“太可怕了”,
对不起,是的,
};
函数doSomethingWithName(名称){
用于(窗口中的var obj){
var tmp=窗口[obj];
if(对象(tmp)==tmp&&tmp.name==name){
返回tmp;
}
}
}

log(doSomethingWithName(myObject.name))免责声明:您绝对不应该这样做。我之所以发布这篇文章,是因为它实际上是可能的(有一些警告),但实际上并不可取

假设这是在浏览器中运行的,并且它都在全局范围内运行(如在脚本标记中),您可以从技术上迭代
窗口
对象,检查窗口中的任何对象的名称属性,并确定其名称属性是否与传递给您的函数的名称匹配

var myObject={
名字:“汤姆”,
这是:“太可怕了”,
对不起,是的,
};
函数doSomethingWithName(名称){
用于(窗口中的var obj){
var tmp=窗口[obj];
if(对象(tmp)==tmp&&tmp.name==name){
返回tmp;
}
}
}

log(doSomethingWithName(myObject.name))幸运的是,这是不可能的。不。你想通过那样做来实现什么?幸运的是这是不可能的。你想通过这样做实现什么?