gpt4 book ai didi

javascript - 不同浏览器中的数组反转行为

转载 作者:行者123 更新时间:2023-11-29 18:44:50 25 4
gpt4 key购买 nike

在 Firefox 的控制台中运行以下命令:Array.reverse([0,1]);

结果:[1,0]

在 Chrome 中再次运行它:

Array.reverse 不是函数

我尝试这个的全部目的是我想将一个数组反转为它自己的副本,这样它就不会改变原来的。我的问题:哪个浏览器的行为正确?

在我看来,since reverse() is supposed to be on Array.prototype , Firefox 是错误的。然而,Firefox 的行为更有用。这是 Firefox 的错误吗?

最佳答案

多年前推出的 Firefox Array's generics method ,在 JS 1.6 中,但如链接页面中所述:

"These are not part of ECMAScript standards and they are not supported by non-Gecko browsers."

和:

Array generics are non-standard, deprecated and will get removed in the near future.

因此你应该避免它们。

更重要的是,它不能解决您的问题。你说你想避免改变原来的数组,但是 Array.reverse(arr) 等同于 arr.reverse(),所以你无论如何都要改变原始数组。

如果你想避免这种情况,你应该创建它的副本。如果你只需要一个浅拷贝,你可以这样做:

let arr = [0, 1];
let reversed = [...arr].reverse();

console.log(arr, reversed); // [0, 1], [1, 0]

关于javascript - 不同浏览器中的数组反转行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com