Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用指向对象中值方向的字符串访问对象的fileld_Javascript_Object_Data Structures_Javascript Objects - Fatal编程技术网

Javascript 如何使用指向对象中值方向的字符串访问对象的fileld

Javascript 如何使用指向对象中值方向的字符串访问对象的fileld,javascript,object,data-structures,javascript-objects,Javascript,Object,Data Structures,Javascript Objects,我正在尝试访问对象的密钥。 但这是行不通的。有人能帮我吗 所以我有一个对象和一个字符串,它指向我必须在对象内部访问的值。这个值下降了两级 const obj = { name: 'yash', { hobbies: { sports: ['football', 'tennis']} } }; // this is an example object, I have a string const item = 'hobbies.sports'; // now I want to access th

我正在尝试访问对象的密钥。 但这是行不通的。有人能帮我吗

所以我有一个对象和一个字符串,它指向我必须在对象内部访问的值。这个值下降了两级

const obj = { name: 'yash', { hobbies: { sports: ['football', 'tennis']} } };
// this is an example object, I have a string
const item = 'hobbies.sports';
// now I want to access the object with this item
obj[item] // but this isn't working.

您的问题的粗略解决方案:

const obj={
姓名:“yash”,
爱好:{
体育:[“足球”、“网球”]
}
};
//这是一个示例对象,我有一个字符串
const item='爱好.运动';
//现在我想使用此项访问对象

console.log(eval(“obj.”+item))
您的问题的粗略解决方案:

const obj={
姓名:“yash”,
爱好:{
体育:[“足球”、“网球”]
}
};
//这是一个示例对象,我有一个字符串
const item='爱好.运动';
//现在我想使用此项访问对象

log(eval(“obj.”item))
如果键引用(如上所述的项)的格式是固定的,并且以“.”分隔,我们可以拆分键,然后使用
reduce
得出如下结果-

const obj={name:'yash',嗜好:{sports:['football','network']};
const ref='爱好.运动';
常量键=参考拆分('.');
const result=keys.reduce((累加器,x)=>累加器[x],obj);

控制台日志(结果)
如果键ref(如上所述的项)的格式是固定的,并且以“.”分隔,我们可以拆分键,然后使用
reduce
得出如下结果-

const obj={name:'yash',嗜好:{sports:['football','network']};
const ref='爱好.运动';
常量键=参考拆分('.');
const result=keys.reduce((累加器,x)=>累加器[x],obj);

控制台日志(结果)这是否回答了您的问题?还是这个@不是真的。你说的“不是真的”是什么意思?请编辑您的问题以包含更多详细信息此选项是否回答您的问题?还是这个@不是真的。你说的“不是真的”是什么意思?请编辑您的问题以包含更多详细信息