js原生的东西能不能不要改了呢?

先上代码

let arr = [1, 2, 3, 4, 5, 6, 2, 4, 1];
console.log(Array.from(new Set(arr)).toString());
console.log([…(new Set(arr))].toString());

各个版本的nodejs、浏览器,以及ccc2.3.4输出的结果都一致,唯独2.4不一致
这么底层的东西改了,会出事的啊……

另外,去重方法应该同学们都要用到吧,难道就没人在我之前发现吗?虽然没啥难度,但从一个大型项目要定位到这,还是挺花时间的!
麻烦同学们有点分享精神好么……谢谢!

1赞

试了下 TS会有提示 Set在ES5不是Array,改ES6正常:joy:
感觉现在用TS多

而且这个改动跟cocos其实没有什么关系:14:

当然有关系哈,是随ccc的包打出来的

当然有关系,是随ccc的包打出来的

是js本来就改了吧,像楼上说的可能是es5和es6的区别?ccc只是把别人的更新更新出来而已,但实际上并不属于ccc而且ccc也不管辖这部分的东西的吧

主要是 … 这3个点的问题
不是说不能改,未来哪怕支持es7、es8、es100,甚至把new Set禁用,也是引擎组的事
但确实2.4版本的ccc就不行了,会造成很大的问题
就好比手机本来是用LG的屏,后来换三星了,出了问题用户哪可能去直接找他们:grin:

看来还是要养成好习惯,基础库也把测试用例写好,升了引擎就先跑一下看看,否则底层的东东改了,找BUG会找到怀疑人生