Básicamente, ¿se puede condensar en una variable la parte no utilizada del objeto desestructurado?
Obviamente, esto no funcionará porque "tirar" ya está declarado,
ESTO ES SOLO PARA ILUSTRAR LA PREGUNTA
const obj = { a:1, b:2, c:3, d:4 } const toss = {b,c}; const {...toss, ...keep} = obj; console.log(keep); // { a:1, d:4 }Si toss está destinado a ser una lista de claves para ignorar, entonces puede definirlo como una matriz de cadenas, en lugar de la forma inválida en que lo definió que arrojaría un error
Entonces es una línea simple (probablemente haya otras formas de hacer esto, como siempre hay en javascript, aunque esta es la primera que me vino a la mente)
const obj = { a: 1, b: 2, c: 3, d: 4 } const toss = ['b', 'c']; const keep = Object.fromEntries(Object.entries(obj).filter(([k]) => !toss.includes(k))) console.log(keep);sin embargo, aún más simple, ya que su código está codificado de todos modos
const obj = { a: 1, b: 2, c: 3, d: 4 } const {b, c, ...keep} = obj; console.log(keep);Prueba esto.
const _0 = {'a': 1, 'b': 2, 'c': 3, 'd': 4}; const _1 = {'a': 1, 'b': 2, 'c': 4}; const _2 = function(_0, _1) { let _2 = Object.keys(_0); let _3 = _2.length; let _4 = ''; let _5 = {}; let _6 = 0; while (_6 !== _3) { _4 = _2[_6++]; if (typeof _1[_4] === 'undefined' || _0[_4] !== _1[_4]) { _5[_4] = _0[_4]; } } return _5; }; const _3 = _2(_0, _1); console.log(_3); Esto permite la desestructuración con comparaciones de pares {'key': value} en lugar de una matriz de claves.
Un ciclo while( while() con Object.keys() también es más rápido y más compatible con el navegador que Object.entries() .