我有两个变量。两者都有一些价值。
var position = "340px";
var end_position = "4px";
var final = position + end_position;
//result comes NAN
// sometime it return 340px4px
// i want 344px

如何添加这些值以获得理想的结果。 将不胜感激。
答案 0 :(得分:2)
您可以使用parseInt
var position = "340px";
var end_posiiton = "4px";
var final = parseInt(position, 10) + parseInt(end_position,10) + "px";
答案 1 :(得分:1)
您可以使用parseInt
(或parseFloat
取决于数字)并添加两个数字
var position = "340px";
var end_position = "4px";
var final = ( parseInt(position) + parseInt(end_position) ) + "px";
console.log( final )

答案 2 :(得分:1)
您要连接字符串而不是添加数字,为避免这种情况,您可以删除与数字(即:使用正则表达式)不同的任何内容,然后执行添加操作。此外,您需要将操作数转换为数字。
要将操作数转换为数字,您可以使用对象 Number
,也可以只使用+
作为前缀。
使用+
var position = "340px";
var end_position = "4px";
var final = +position.replace(/[^\d]/g, '') + +end_position.replace(/[^\d]/g, '') + 'px';
console.log(final)
使用对象 Number
var position = "340px";
var end_position = "4px";
var final = Number(position.replace(/[^\d]/g, '')) + Number(end_position.replace(/[^\d]/g, '')) + 'px';
console.log(final)
答案 3 :(得分:1)
你需要将字符串转换为int,将它们转换回字符串
var position = "340px";
var end_position = "4px";
var final = (parseInt(position) + parseInt(end_position)).toString()+"px";
console.log(final);
//result comes NAN
// sometime it return 340px4px
// i want 344px
答案 4 :(得分:0)
使用Array.prototype.split
执行此操作的另一个变体:
var position = "340px"
var end_position = "4px"
var final = +position.split('px')[0] + +end_position.split('px')[0] + "px"
console.log(final)