Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.06.2022, 11:23
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Отформатированный массив элементов
Подскажите пожста, что нужно вставить вместо троеточия в моем коде чтобы дало нужный результат?
Надо чтобы в новый массив не попадали элементы с буквами.

const cleanTransactionsList = arrTransactions => {
    let arrToStr = arrTransactions.join().trim();

    let arrFormatted = arrToStr.split(',');

    let arrRes = arrFormatted.map((elem) => {
        if (elem.includes(...)) { ... }
        return '$' + parseFloat(elem).toFixed(2);

    });

    return arrRes;
}

console.log(cleanTransactionsList(['  1.9 ', '16.4', 17, ' 1 dollar ']));
// ['$1.90', '$16.40', '$17.00']
Ответить с цитированием
  #2 (permalink)  
Старый 04.06.2022, 11:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

NovichokJS,
const cleanTransactionsList = arrTransactions => {
            return arrTransactions.filter(elem => elem == +elem).map(elem => {
                return '$' + Number(elem).toFixed(2);
            });
        }
        console.log(cleanTransactionsList(['  1.9 ', '16.4', 17, ' 1 dollar ']));
        // ['$1.90', '$16.40', '$17.00']
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2022, 11:38
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
NovichokJS,
const cleanTransactionsList = arrTransactions => {
            return arrTransactions.filter(elem => elem == +elem).map(elem => {
                return '$' + Number(elem).toFixed(2);
            });
        }
        console.log(cleanTransactionsList(['  1.9 ', '16.4', 17, ' 1 dollar ']));
        // ['$1.90', '$16.40', '$17.00']
Тогда вопросы есть)
1). Что значит +elem ?
2). можно всё же условие вставить в мой код, я так старался соорудив его и хотелось получить условия чтобы он сработал. Понимаю что мой код не очень может качественный.
Заранее благодарю!
Ответить с цитированием
  #4 (permalink)  
Старый 04.06.2022, 11:42
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Рони, также я запустил ваш код, он выводит только [ '$17.00' ] - подхватывает только цифры, а строчные элементы массива нет

Последний раз редактировалось NovichokJS, 04.06.2022 в 11:47.
Ответить с цитированием
  #5 (permalink)  
Старый 04.06.2022, 11:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

1.
Сообщение от NovichokJS
Что значит +elem ?
получение числа из строки, тоже что Number(elem)
2. не осилил ...
3. не верю
Ответить с цитированием
  #6 (permalink)  
Старый 04.06.2022, 11:52
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
1.
получение числа из строки, тоже что Number(elem)
2. не осилил ...
3. не верю
я понял. Нужно чтобы ' 1 dollar ' не попадал в новый массив, так как там есть буквы
Ответить с цитированием
  #7 (permalink)  
Старый 04.06.2022, 11:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от NovichokJS
подхватывает только цифры, а строчные элементы массива нет
в каком браузере такая фишка?
Ответить с цитированием
  #8 (permalink)  
Старый 04.06.2022, 12:05
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
в каком браузере такая фишка?
прошу прощение, то я просто исправил сразу в вашем коде == на === и поэтому вывело только [ '$17.00' ].
Всё работает. А каким образом убираются всё лишнее? имею ввиду пробелы. Получается что метод filter() привел в порядок(удалил пробелы) ?
Ответить с цитированием
  #9 (permalink)  
Старый 04.06.2022, 12:10
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

рони,
и еще вопрос последний. Как так выходит что это выражение elem => elem == Number(elem) не запушило в новый массив элемент NaN вместо '1 dollar' ?
Ведь если сделать console.log(Number('1 dollar')); то получаем NaN
Ответить с цитированием
  #10 (permalink)  
Старый 04.06.2022, 12:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

NovichokJS,
удалил пробелы Number, когда строку преобразовывал в число.
== не строгий метод сравнения, тоже самое попытался преобразовать в числа оба операнда, в отличие от === который сравнивает тип, поэтому ничего не преобразует.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив из элементов другого массива, взятых в случайном порядке Basil_JS Общие вопросы Javascript 6 12.04.2015 13:07
Получить массив без повторяющихся элементов truten Общие вопросы Javascript 5 15.12.2013 20:35
Удалить и вернуть массив из удаленных элементов splice Paulyyy Общие вопросы Javascript 15 29.05.2013 15:36
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов. Drimmer Серверные языки и технологии 0 02.07.2012 18:22
как записать id всех элементов в массив? SunYang Общие вопросы Javascript 21 06.02.2010 22:50