Какой лучший способ удалить свойство notneeded
из этого массива?
function apiCall(...args) {
//at this point I need to remove 'notneeded' property from args
};
apiCall({a: 'one', b: 'two'}, {notneeded: '', c: 'three'}, 'hello');
Эти переданные объекты могут быть примитивами, функциями и т. Д., Поэтому в идеале решение должно обрабатываться в каждом случае.
Я создал следующую функцию для этой проблемы, но я уверен, что есть лучшее решение (возможно, с новыми стандартами ECMA).
function omit(args, omitKey) {
let omitted = [];
for (let i = 0; i < args.length; i++) {
if (typeof args[i] === 'object') {
omitted.push(
Object.keys(args[i]).reduce((result, key) => {
if (key !== omitKey) {
result[key] = args[i][key];
}
return result;
}, {}),
);
} else {
omitted.push(args[i]);
}
}
return omitted;
}