从对象中检索由给定选择器指示的一组属性。
用Array.prototype.map()遍历每个选择器,使用String.prototype.replace()方法将点替换方括号。
用String.prototype.split()方法拆分每个选择器。
用Array.prototype.filter()删除空值,使用Array.prototype.reduce()方法获取每个选择器指示的值。
const get = (from, ...selectors) =>
[...selectors].map(s =>
s
.replace(/\[([^\[\]]*)\]/g, '.$1.')
.split('.')
.filter(t => t !== '')
.reduce((prev, cur) => prev && prev[cur], from)
);