从对象中检索出给定选择器指定的一组属性。
对每个选择器使用 Array.map()
,使用 String.split('.')
来分割每个选择器,并使用 Array.reduce()
来获取它所指示的值。
const select = (from, ...selectors) => [...selectors].map(s => s.split('.').reduce((prev, cur) => prev && prev[cur], from));
const obj = { selector: { to: { val: 'val to select' } } }; select(obj, 'selector.to.val'); // ['val to select'] select(obj, 'selector.to.val', 'selector.to'); // ['val to select', { val: 'val to select' }]