У меня есть объект объектов, где каждый объект имеет ключ и массив в качестве значения. Это то, что у меня было изображение . У меня было несколько массивов со значениями менее x
элементов (в данном случае 20
) в каждом массиве, поэтому я написал этот код, чтобы заполнить свои массивы нулями. вот результат моего кода image . Однако, как видите, код не работает, если имеется массив только со значениями null
. Это меня на время оттолкнуло. вот мой код:
let results[tab] = {
"Capital Cost ($)": [-2176346066.1517634],
"Electricity Revenue ($)":
[25128866.14469719, 34695653.93022109, 42581870.9302151, 48994313.58438795],
"Net Present Value ($)": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
}
const maxLength = Object.values(results[tab]).map( x => x.map( x=> x === null ? 0 : x))
.reduce( (acc, item) => Math.max(acc, item.length), 0);
const new_values = Object.values(results[tab]).map( value => value.concat(Array(maxLength - value.length).fill(0)));
const keys = Object.keys(results[tab]);
var toObj = (ks, vs) => ks.reduce((o,k,i)=> {o[k] = vs[i]; return o;}, {});
const new_results = toObj(keys, new_values);
console.log(new_results)
Решение : Итак, оказалось, что map
не применяет новое условие. Решено!