这个函数的目的是删除给定String的空格,然后将其转换为Number,最后将数字的每个字符推入一个空数组(即“24532”,应该推入数组中以下[2,4,5,3,2])。但是,当我在函数末尾控制输出数组时 - 我在输出数组中接收NaN值。功能的每一步对我来说都是有意义的,但我不确定我的错误在哪里生活。任何帮助将不胜感激!
function convert(numbers){
var notString = parseInt(numbers.replace(/\s+/g, ''), 10),
sNumber = notString.toString(),
output =[];
console.log(sNumber);
for(var i = 0; i < sNumber.length; i+=1) {
output.push(+sNumber.charAt[i]);
}
console.log(output);
}
convert("1 2 2 2 2");
答案 0 :(得分:2)
为什么不使用String#split()
?
function convert(numbers) {
return numbers.trim().split(/\s+/).map(Number);
}
document.write('<pre>' + JSON.stringify(convert(" 1 2 2 2 2 "), 0, 4) + '</pre>');
&#13;
答案 1 :(得分:1)
为什么不喜欢这个
function convert(numbers){
return numbers.replace(/\s+/g,'').split('');
}
console.log(convert("1 2 2 2 2"));
实际上,如果它总是只有1个空格字符,你可以这样做
console.log("1 2 2 2 2".split(' '));
答案 2 :(得分:1)
答案 3 :(得分:0)
在推送实例中删除sNumber之前的+。而不是console.log使用console.dir
echo '<option value="', $option['value'], '"', $meta == $option['value'] ? ' selected="selected"' : '', '>', $option['name'], '</option>';
尝试以上方法。
答案 4 :(得分:0)
您应该使用split
函数作为@Nina,但如果您对错误的位置感兴趣,可以试试这个:
替换
charAt[i]
到
charAt(i) // parentheses
charAt
是一个函数,您需要使用括号()
来调用它