Как добавить строковое числовое значение в javascript?

У меня две переменные. оба имеют некоторую ценность.

var position = "340px";
var end_position = "4px";
var final = position + end_position;
//result comes NAN 
// sometime it return 340px4px
// i want 344px

как мне добавить эти значения, чтобы получить желаемый результат. Помощь будет оценена.

вам нужно удалить x из строки и использовать функцию javascript parseInt

Navin Rai 18.03.2018 13:46

Есть много разных способов сделать это.

connexo 18.03.2018 13:51

В идеале вы не должны хранить единицы вместе со значением позиции. Это должно быть безразмерное число. Добавьте устройство непосредственно перед фактическим использованием.

Mohammad Usman 18.03.2018 16:13
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
298
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Вы можете использовать parseInt (или parseFloat в зависимости от номера) и сложить оба числа

var position = "340px";
var end_position = "4px";
var final = ( parseInt(position) + parseInt(end_position) ) + "px";

console.info( final )

Вы можете использовать parseInt

var position = "340px";
var end_posiiton = "4px";
var final = parseInt(position, 10) + parseInt(end_position,10) + "px";

Для чего нужен дополнительный параметр 10? Десятичная система?

connexo 18.03.2018 13:49

«основание системы счисления - необязательно. Число (от 2 до 36), представляющее используемую систему счисления»

Tomasz Mularczyk 18.03.2018 13:49

Вы объединяете строки, а не добавляете числа, чтобы избежать этого, вы можете удалить все, кроме числа (т.е. с использованием регулярного выражения), а затем выполнить операцию добавления. Далее вам нужно преобразовать операнды в числа.

Чтобы преобразовать операнды в числа, вы можете использовать объект Number или просто префикс +.

Приставка с помощью +

var position = "340px";
var end_position = "4px";
var final = +position.replace(/[^\d]/g, '') + +end_position.replace(/[^\d]/g, '') + 'px';

console.info(final)

Использование объекта Number

var position = "340px";
var end_position = "4px";
var final = Number(position.replace(/[^\d]/g, '')) + Number(end_position.replace(/[^\d]/g, '')) + 'px';

console.info(final)

вам нужно преобразовать строку в int, сделать сумму, чтобы преобразовать их обратно в строки

    var position = "340px";
    var end_position = "4px";
      var final = (parseInt(position) + parseInt(end_position)).toString()+"px";
console.info(final);
  //result comes NAN 
  // sometime it return 340px4px
  // i want 344px

технически toString() лишний.

georg 18.03.2018 13:52
Ответ принят как подходящий

Еще один вариант сделать это с помощью Array.prototype.split:

var position = "340px"
var end_position = "4px"
var final = +position.split('px')[0] + +end_position.split('px')[0] + "px"

console.info(final)

Другие вопросы по теме