JavaScript flatMap行为存疑?如何上报JavaScript Bug?
关于JavaScript flatMap函数的行为疑问与Bug上报方法
问题场景与复现
撰写版本资讯时,发现JavaScript的flatMap函数行为疑似异常,测试环境为Node v18.13.0、Windows 10 Pro 21H2。
测试代码:
const arrValor = [1,2,3,4,5,,6,[7,8,9,[10,11,[111,222]],12],13,14]; //console.log("Original :",arrValor); console.log("mas s :",arrValor.flatMap(val=>val+"s"));
运行结果:
mas s : [ '1s', '2s', '3s', '4s', '5s', '6s', '7,8,9,10,11,111,222,12s', '13s', '14s' ]
疑问点
问题在于,原数组中嵌套数组里的同层级元素12被添加了s,但嵌套数组内的7、8、9等元素并未被单独处理,反而整个嵌套数组被转换为字符串后统一添加了s。我期望flatMap能对所有同层级元素进行一致处理,且测试混合类型数组后该问题仍存在。
注意:此问题并非询问数组扁平化方法,而是质疑flatMap的当前行为是否属于异常。
JavaScript Bug上报方法
- 先核对ECMAScript官方规范,确认flatMap的预期行为,判断当前现象是否违反规范
- 若确认是Bug,由于Node.js基于V8引擎,可通过以下途径上报:
- 直接向V8引擎的代码仓库提交Issue:准备好清晰的复现代码、环境信息、预期结果与实际结果的对比说明
- 向Node.js的官方代码仓库提交Issue,描述问题细节,Node团队会将相关问题转交给V8团队处理
内容的提问来源于stack exchange,提问作者migarcia
相关产品推荐
相关产品推荐

