# at
# Description
创建一个数组,值来自 object
的 paths
路径相应的值。
# Params
(object, ...paths)
{Object} object: 要迭代的对象。
{...(string|string[])} [paths]: 要获取的对象的元素路径,单独指定或者指定在数组中
# Return
Array
# Depend
import baseAt from './.internal/baseAt.js'
import baseFlatten from './.internal/baseFlatten.js'
# Code
const at = (object, ...paths) => baseAt(object, baseFlatten(paths, 1))
# Analyze
- 对于
paths
调用baseFlatten
方法进行扁平化处理,递归深度为1
- 调用
baseAt
方法来获取 基于paths
的object
值
# Remark
- 剩余参数 MDN (opens new window) —— 允许我们将一个不定数量的参数表示为一个数组
# Example
var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }
at(object, ['a[0].b.c', 'a[1]']) // [3, 4]
at(object, 'a[0].b.c', 'a[1]') // [3, 4]