omit
2024年06月17日
一、认识
反向版_.pick
; 这个方法一个对象,这个对象由忽略属性之外的object
自身和继承的可枚举属性组成。(注:可以理解为删除object对象的属性)。
二、语法
三、实现
3.1 includes
function omit(obj, keys) {
const newObj = {};
for (let key in obj) {
if (!keys.includes(key)) {
newObj[key] = obj[key];
}
}
return newObj;
}
测试
const object = { 'a': 1, 'b': '2', 'c': 3 };
const result = omit(object, ['a', 'c']);
console.log(result);
3.2 difference reduce
function difference(array, ...values) {
const valuesMerge = values.reduce((prev, curr) => {
return prev.concat(curr);
}, []);
return array.filter((item) => {
return !valuesMerge.includes(item);
});
}
function omit(object, keys) {
const differenceKeys = difference(Object.keys(object), keys);
return differenceKeys.reduce((obj, key) => {
if (object && object.hasOwnProperty(key)) {
obj[key] = object[key];
}
return obj;
}, {});
}
const object = { a: 1, b: "2", c: 3 };
const result = omit(object, ["b"]);
console.log(result);