javascript typeof null не работает должным образом - PullRequest
0 голосов
/ 05 августа 2020

У меня есть объект объектов, где каждый объект имеет ключ и массив в качестве значения. Это то, что у меня было изображение . У меня было несколько массивов со значениями менее 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 не применяет новое условие. Решено!

1 Ответ

1 голос
/ 05 августа 2020

тип x никогда не может быть нулевым, так как null - это значение, а не тип. даже тип null является объектом. поэтому в вашем коде нет необходимости в typeof.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...