Я работаю над проблемами кодирования Javascript ES6 на freecodecamp.org, и одна из них поручила мне использовать функцию обозначения стрелки:
- Взять массив действительных чисел.
- Фильтртолько положительные целые числа в новый массив и
- возведите в квадрат эти положительные целые числа.
Я успешно выполнил задачу, но построил свой код для шага 2, отфильтровав исходный массив с помощью чисел.isInteger ().Предоставленный ответ Freecodecamp.org использует parseInt ().
Я не понимаю, зачем нам нужно анализировать целые числа, если они уже являются целыми числами, или почему parseInt () не выдает ошибку, поскольку его параметр запрашивает строку.
Мой основной вопрос: Оба одинаково приемлемы?Кто-нибудь может привести меня к дальнейшим неприятностям в будущем?
Единственный тесно связанный стек, который я обнаружил, был здесь (который был немного полезен).Ниже приведен мой код, за которым следует код ответа, предоставленный freecodecamp.org.ПРИМЕЧАНИЕ. Мне известно, что в моем коде есть несколько дополнительных шагов.Я не большой поклонник стрелочных обозначений и все еще совершенствую свою организацию кода!
МОЙ КОД ::
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
"use strict";
// dictates what numbers are filter()'d out of original array
const checkElement = (value) => value > 0 && Number.isInteger(value) == true;
const integersOnly = arr.filter(checkElement); //filters ONLY positive integers into new array
ПРЕДОСТАВЛЯЕТСЯ ОТВЕТНЫЙ КОД ::
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34, -2];
const squareList = (arr) => {
"use strict";
const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );