跳到主要内容

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);