У меня две переменные. оба имеют некоторую ценность.
var position = "340px";
var end_position = "4px";
var final = position + end_position;
//result comes NAN
// sometime it return 340px4px
// i want 344pxкак мне добавить эти значения, чтобы получить желаемый результат. Помощь будет оценена.
Есть много разных способов сделать это.
В идеале вы не должны хранить единицы вместе со значением позиции. Это должно быть безразмерное число. Добавьте устройство непосредственно перед фактическим использованием.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать 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? Десятичная система?
«основание системы счисления - необязательно. Число (от 2 до 36), представляющее используемую систему счисления»
Вы объединяете строки, а не добавляете числа, чтобы избежать этого, вы можете удалить все, кроме числа (т.е. с использованием регулярного выражения), а затем выполнить операцию добавления. Далее вам нужно преобразовать операнды в числа.
Чтобы преобразовать операнды в числа, вы можете использовать объект Number или просто префикс +.
Приставка с помощью +
var position = "340px";
var end_position = "4px";
var final = +position.replace(/[^\d]/g, '') + +end_position.replace(/[^\d]/g, '') + 'px';
console.info(final)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() лишний.
Еще один вариант сделать это с помощью 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)
вам нужно удалить x из строки и использовать функцию javascript parseInt