📜  jQuery 中的 toArray 和 makeArray 有什么区别?(1)

📅  最后修改于: 2023-12-03 15:16:48.229000             🧑  作者: Mango

jQuery 中的 toArraymakeArray 有什么区别?

在 jQuery 中,toArraymakeArray 方法都可以将一个类数组对象(如 jQuery 对象,arguments 对象等)转换为真正的数组,并且它们都返回一个新的数组。

不过,这两个方法之间还是有一些区别的。

toArray 方法

toArray 方法是将一个类数组对象转换为真正的数组的最简单方法,它可以直接作用于任何类数组对象,如下:

let $lis = $('li');
let arr = $lis.toArray(); // 将 jQuery 对象转换成数组

toArray 方法会将 jQuery 对象转换为一个数组,而这个数组的元素就是 jQuery 对象中的每一个 DOM 元素。

makeArray 方法

makeArray 方法与 toArray 方法的区别是,它能够接受额外的参数,这些参数会被追加到转换后的数组中。这意味着,你可以通过 makeArray 方法,将两个或多个数组合并成一个数组,如下:

let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let mergedArr = $.makeArray(arr1, arr2); // 合并两个数组成为一个数组
console.log(mergedArr); // [1, 2, 3, 4, 5, 6]

另外,makeArray 方法还支持将类数组对象转换为数组,并且它能够设置转换后的数组的起始索引,如下:

let arg = (function() { return arguments; })('apple', 'banana', 'pear');
let arr = $.makeArray(arg, [], 1); // 将 arguments 对象转换成数组,且从第2个元素开始截取
console.log(arr); // ['banana', 'pear']
总结
  • toArray 方法是将一个类数组对象转换为真正的数组的简单方法,而且没有额外的参数;
  • makeArray 方法可以将两个或多个数组合并成一个数组,还可以将类数组对象转换为数组,并且可以设置数组的起始索引。

因此,在实际开发中,我们可以根据自己的需求来选择使用哪个方法。