Aquí está el código:
let bucket = [[],[],[],[],[],[],[],[],[],[]]; bucket = {...Object.keys(bucket) .sort((a,b) => ba) .filter(key => key > 0) .map(key => '-'+key), ...bucket}; console.log(bucket);Problema: la primera línea de código no agrega las claves negativas del objeto de cubo original al objeto, con todas las propiedades (claves) que tienen matrices vacías como su valor correspondiente.
El depósito solo muestra sus propiedades y valores originales después de evaluar esta línea de código
¿Cómo puedo hacer que esto funcione?
Array.map() crea una matriz de cadenas con sus claves negativas, y se sobrescriben cuando distribuye la matriz de bucket . En su lugar, cree pares de [new key, []] conviértalos en un objeto con Object.fromEntries() y luego distribúyalos:
const bucket = [[],[],[],[],[],[],[],[],[],[]]; const result = { ...Object.fromEntries( Object.keys(bucket) .filter(key => key > 0) .sort((a, b) => ba) .map(key => [-key, []]) ), ...bucket}; console.log(result);