Javascript 如何接收数组作为参数,然后返回所接收数组的副本

Javascript 如何接收数组作为参数,然后返回所接收数组的副本,javascript,arrays,function,syntax,return,Javascript,Arrays,Function,Syntax,Return,功能副本(arr){ 返回[…arr]; }使用slice返回新数组,而不是所接收数组的引用 功能副本(原始版本){ 返回原始lavors.slice() } //或者使用ES6语法 const copy=originalArray=>originalArray.slice() 请重新格式化您的问题好吗?请注意,与arr.slice(0)@PawanSharma相比,spread运算符的速度非常慢,我同意,但只有当数组大小相当大时,它才会产生相当大的差异,但这里看到问题中给出的数组大小,我不这样

功能副本(arr){
返回[…arr];

}
使用slice返回新数组,而不是所接收数组的引用

功能副本(原始版本){
返回原始lavors.slice()
}
//或者使用ES6语法
const copy=originalArray=>originalArray.slice()

请重新格式化您的问题好吗?请注意,与arr.slice(0)@PawanSharma相比,spread运算符的速度非常慢,我同意,但只有当数组大小相当大时,它才会产生相当大的差异,但这里看到问题中给出的数组大小,我不这样认为,它不会产生任何显著的差异,而且
拼接
是特定于数组的,而
扩展
运算符可以用于任何iterable。我同意,但OP询问了数组。另外,许多人不知道复制阵列的不同方式的性能差异。人们总是倾向于使用
spread
,因为它更新而且看起来很酷。很高兴看到你自己指出了这一点。在回答中也添加了,谢谢你指出@PawanSharma
function copy(originalFlavors) {

var originalFlavors = [
        "Banana Nut Fudge",
        "Black Walnut",
        "Burgundy Cherry",
        "Butterscotch Ribbon",
        "Cherry Macaron",
        "Chocolate",
        "Chocolate Almond",
        "Chocolate Chip",
        "Chocolate Fudge",
        "Chocolate Mint",
        "Chocolate Ribbon",
        "Coffee",
        "Coffee Candy",
        "Date Nut",
        "Eggnog",
        "French Vanilla",
        "Green Mint Stick",
        "Lemon Crisp",
        "Lemon Custard",
        "Lemon Sherbet",
        "Maple Nut",
        "Orange Sherbet",
        "Peach",
        "Peppermint Fudge Ribbon",
        "Peppermint Stick",
        "Pineapple Sherbet",
        "Raspberry Sherbet",
        "Rocky Road",
        "Strawberry",
        "Vanilla",
        "Vanilla Burnt Almond"
    ];


    console.log(copy(originalFlavors));
}
function copy(originalFlavors) {
    return [...originalFlavors];
}  

  var originalFlavors = [
                "Banana Nut Fudge",
                "Black Walnut",
                "Burgundy Cherry",
                "Butterscotch Ribbon",
                "Cherry Macaron",
                "Chocolate",
                "Chocolate Almond",
                "Chocolate Chip",
                "Chocolate Fudge",
                "Chocolate Mint",
                "Chocolate Ribbon",
                "Coffee",
                "Coffee Candy",
                "Date Nut",
                "Eggnog",
                "French Vanilla",
                "Green Mint Stick",
                "Lemon Crisp",
                "Lemon Custard",
                "Lemon Sherbet",
                "Maple Nut",
                "Orange Sherbet",
                "Peach",
                "Peppermint Fudge Ribbon",
                "Peppermint Stick",
                "Pineapple Sherbet",
                "Raspberry Sherbet",
                "Rocky Road",
                "Strawberry",
                "Vanilla",
                "Vanilla Burnt Almond"
            ];  
    console.log(copy(originalFlavors));