omitObjectProps
删除对象中指定的属性
引入版本
0.15.0
Demo
ts
import { omitObjectProps } from '@wyfex/iutils'
/**
* ================== 1. 传入单个 key ==================
*/
const user = { id: 1, name: '张三', age: 18 }
const res1 = omitObjectProps(user, 'id')
console.log(res1) // { name: '张三', age: 18 }
/**
* ================== 2. 传入 key 数组,删除多个字段 ==================
*/
const res2 = omitObjectProps(user, ['id', 'age'])
console.log(res2) // { name: '张三' }
/**
* ================== 3. 删除不存在的 key,无影响 ==================
*/
const res3 = omitObjectProps(user, ['xxx'])
console.log(res3) // { id: 1, name: '张三', age: 18 }
/**
* ================== 4. 删除全部字段,返回空对象 ==================
*/
const res4 = omitObjectProps(user, ['id', 'name', 'age'])
console.log(res4) // {}
/**
* ================== 5. 嵌套对象(仅浅删顶层,嵌套内部不处理) ==================
*/
const data = {
token: 'abc123',
info: { phone: '13800138000', address: '四川宜宾' }
}
const res5 = omitObjectProps(data, 'token')
console.log(res5)
// { info: { phone: '13800138000', address: '四川宜宾' } }
/**
* ================== 6. 空对象输入 ==================
*/
console.log(omitObjectProps({}, 'a')) // {}
/**
* ================== 7. 各种类型值不影响删除逻辑 ==================
*/
const row = { num: 0, str: '', flag: false, list: [], obj: {} }
const res7 = omitObjectProps(row, ['num', 'list'])
console.log(res7) // { str: '', flag: false, obj: {} }