节点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));