在前端开发过程中,经常需要针对一个对象或数组中的某个嵌套属性进行操作。例如,在一个由多个对象组成的数组中,需要通过某个属性值来筛选出符合条件的对象数组,或者需要获取嵌套对象中的某个属性值等。本文将介绍 npm 包 value-at,它可以方便地对对象或数组中的嵌套属性进行操作。
安装
在使用 value-at 之前,需要先安装它:
npm install value-at
安装完成后,在需要使用的地方引入即可:
const valueAt = require('value-at');
使用方法
筛选
在一个对象数组中筛选出符合条件的对象数组
语法
valueAt.filter(array, value, [path], [strict]);
参数
- array:要筛选的对象数组;
- value:筛选条件;
- path:可选参数,嵌套属性的路径,可以使用数组形式或点号连接字符串;
- strict:可选参数,是否使用严格模式,默认为 true。
示例
假设有以下数组:
const arr = [ { name: 'Alice', age: 22, address: { city: 'Beijing', country: 'China' } }, { name: 'Bob', age: 30, address: { city: 'Shanghai', country: 'China' } }, { name: 'Cathy', age: 25, address: { city: 'Beijing', country: 'China' } } ]
若要筛选出住在北京的人,可以这样写:
const res = valueAt.filter(arr, 'Beijing', 'address.city'); // res: [{ name: 'Alice', age: 22, address: { city: 'Beijing', country: 'China' } }, { name: 'Cathy', age: 25, address: { city: 'Beijing', country: 'China' } }]
获取
获取嵌套对象中的某个属性值
语法
valueAt.get(object, path);
参数
- object:要获取属性的嵌套对象;
- path:嵌套属性的路径,可以使用数组形式或点号连接字符串。
示例
假设有以下对象:
const obj = { name: 'Alice', age: 22, address: { city: 'Beijing', country: 'China' } };
若要获取其居住的城市,可以这样写:
const city = valueAt.get(obj, 'address.city'); // city: 'Beijing'
设置
设置嵌套对象中的某个属性值
语法
valueAt.set(object, path, value);
参数
- object:要设置属性的嵌套对象;
- path:嵌套属性的路径,可以使用数组形式或点号连接字符串;
- value:要设置的属性值。
示例
假设有以下对象:
const obj = { name: 'Alice', age: 22, address: { city: 'Beijing', country: 'China' } };
若要将其居住的城市修改为上海,可以这样写:
valueAt.set(obj, 'address.city', 'Shanghai'); // obj: { name: 'Alice', age: 22, address: { city: 'Shanghai', country: 'China' } }
总结
通过 value-at 包,我们可以方便地对对象或数组中的嵌套属性进行筛选、获取和设置操作。有了它,代码编写将更加简便和高效。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600559e381e8991b448d7802