parstInt 和 isNaN 函数的参数错误
Error in argument of parstInt and isNaN function
为什么im在parstInt和isNaN函数中传递参数时出错,说void类型的参数不能分配给类型字符串,我该如何解决这个问题
var u = rx.Observable.interval(400).take(6).map((i)=>{
['2', 'sdf', '4', '8fj', '6'][i]
});
var x = u.map(function(e){
parseInt(e); //error on e
}).filter(r => !isNaN(r)) //error on r
map() 方法创建一个新数组,其中包含在此数组中的每个元素上调用提供的函数的结果。
因此,.map()
回调需要返回一个值,否则它将项目映射到undefined
。在function
中使用return parseInt(e, 10);
或使用箭头函数,默认情况下会返回。(并且始终使用带有 parseInt 的基数)
var u = rx.Observable.interval(400).take(6).map((i) => {
return ['2', 'sdf', '4', '8fj', '6'][i]
});
var x = u.map(e => parseInt(e, 10)).filter(r => !isNaN(r));
如果您不需要中间步骤,则可以进一步减少此步骤,并通过在过滤器函数内解析来删除一个循环。
var x = u.filter(r => !isNaN(parseInt(r, 10)));
编辑我刚刚意识到这实际上是一个打字稿问题。
发生此错误的原因是,用于将可观察对象映射到的数组缺少一个项目。因此,映射的数组将包含:
["2"、"自卫"、"4"、"8FJ"、"6",未定义];
parseInt() 期望第一个参数是一个字符串。在普通JS中,它将尝试转换为字符串,似乎TypeScript可能会处理一些不同的事情。
为了解决这个问题,您可以像这样更新第一个地图的回调:
var u = rx.Observable.interval(400).take(6).map((i) => {
return ['2', 'sdf', '4', '8fj', '6'][i] || '';
});
相关文章:
- 错误:Error:areq定义控制器时参数错误
- 猫鼬的回调()参数错误无效
- parstInt 和 isNaN 函数的参数错误
- 当我尝试在 couchbase nodejs 服务器上运行简单的测试时,我收到“不正确的参数”错误
- window.open 在 IE 中抛出无效参数错误
- D3:在 IE9 中使用 d3.js 出现“无效参数”错误
- “如果 n 大于形式或实际参数的数量,则无法设置参数 [n]”错误的状态
- 尝试在单独的文件中定义控制器时出现错误:ng:areq参数错误
- showModalDialog第三个参数错误
- Angular中的链接承诺.输入参数错误
- 新日期()中的日期参数错误
- Window Open Javascript(参数错误)
- IE8出现JavaScript无效参数错误
- 无效的回发或回调参数错误
- 传递参数错误
- IE9中的函数参数错误
- 谷歌地图GeoCode回调参数错误
- 使用hbs并获得“路径参数”错误.Join必须是字符串
- JavaScript +无效参数错误与fireEvent('onchange')
- IE eventDispatch() SCRIPT87:无效参数.错误