Javascript 迭代器中返回NaN的jquery映射数组
我试图解析这个复选框值数组并删除“N” 使用replace函数会产生错误TypeError:numberArr[i]。replace不是一个函数,如果我删除replace函数,脚本只会为我的值输出NaN 在这里拉小提琴Javascript 迭代器中返回NaN的jquery映射数组,javascript,jquery,Javascript,Jquery,我试图解析这个复选框值数组并删除“N” 使用replace函数会产生错误TypeError:numberArr[i]。replace不是一个函数,如果我删除replace函数,脚本只会为我的值输出NaN 在这里拉小提琴 函数getAllocArray(){ var numberrar=$.map($('input:checkbox:checked'),函数(e,i){ return+e.value; }); var varOutput=''; for(变量i=0,len=numberrarr.
函数getAllocArray(){
var numberrar=$.map($('input:checkbox:checked'),函数(e,i){
return+e.value;
});
var varOutput='';
for(变量i=0,len=numberrarr.length;i”+numberrarr[i]。替换(/N/,“”)+“”;
}
varOutput+='
';
$('#output').text(varOutput);
};
$(“#opts”)。在('click','input:checkbox',null,getAllocArray)上;
不要将值转换为数字
。将+e.value
替换为e.value
:
var numberArr = $.map($('input:checkbox:checked'), function (e, i) {
return e.value;
});
数字没有方法。在本例中,您可以使用
parseInt(+e.value)
而不是+e.value
parseInt('44N12345')
返回44
,但Number('44N12345')
返回NaN,因为存在字符串N
试图转换类似“44N12345”的内容用+
操作符作为数字的前缀,这就是给你的NaN
。为什么不在映射中返回LI元素,而不是在同一事物上迭代两次呢?我现在觉得很愚蠢-o只需等待授权的11分钟即可接受您的超级快速回答!非常感谢。
var numberArr = $.map($('input:checkbox:checked'), function (e, i) {
return e.value;
});