节点JS:访问JSON如果string中的variables名?

我有json对象如下

var data = { datetime:{ time:"9:30 AM", date:"24-09-2017" } } 

和我有stringvar element = "data.datetime.time"如何访问使用元素的时间。

拆分string(点作为分隔符),并使用Array#reduce从对象中提取数据:

 var data = { datetime:{ time:"9:30 AM", date:"24-09-2017" } } var element = "data.datetime.time"; var result = element.split('.').reduce(function(r, p) { return typeof r === 'object' ? r[p] : null; // if r is an object, return the prop value, if not return null }, { data: data }); console.log(result); 
 new Function(`return ${element}`)() 

我刚刚find了答案

只要我们可以使用eval()

 var data = { datetime:{ time:"9:30 AM", date:"24-09-2017" } } var element = "data.datetime.time"; console.log(eval(element));