gpt4 book ai didi

javascript - 在 JavaScript 中,有没有什么方法可以将数组的元素传递给函数而不传递整个数组?

转载 作者:行者123 更新时间:2023-11-30 16:31:39 26 4
gpt4 key购买 nike

例如,在

function swap ( arr, i1, i2 ) 
{
// swaps elements at index i1 and i2
// in the array arr
var temp = arr[i1];
arr[i1] = arr[i2];
arr[i2] = temp;
}

function reverse_array ( arr )
{
// reverse the order of the elements in array arr
var i1 = 0, i2 = arr.length;
while ( i1 != i2 && i1 != --i2 ) swap(arr,i1++,i2);
}

var myArray = [1, 2, 3, 4];
reverse_array(myArray);
myArray.forEach(function(elem) { $('#mydiv').append(elem + ' ') });

我所知道的为数组元素实现 swap 函数的唯一方法是将数组传入。但是,这似乎效率不高。必须有一种方法可以为任何类型的变量实现直接的 swap 函数。我想我的问题真的可以归结为:

在 JavaScript 中实现交换函数的最有效方法是什么???

在将变量传递到经典的函数之前,是否有一种“装箱”(使用 C# 术语)变量的方法 swap ( a, b ) { temp = a;一 = b; b = 温度; } 过程?

最佳答案

如果您使用 ECMAScript6,您可以使用解构来交换。

var a = 0;
var b = 1;
[a, b] = [b, a];

这非常方便,也是我喜欢 Javascript 的原因之一。

但是在使用之前检查兼容性。否则,您必须使用临时变量。

您可以使用该方法反转数组。

var arr = [1,2,3,4,5,6,7];
arr.reverse(); // [7,6,5,4,3,2,1]

传递数组也不是低效的。您所做的只是传递对数组的引用,这比传递数组中的两个元素更有效。

所有变量都通过引用在内部标识,当您将引用传递给函数时,数组或对象的大小对代码速度没有影响。

关于javascript - 在 JavaScript 中,有没有什么方法可以将数组的元素传递给函数而不传递整个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33247481/

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