📅  最后修改于: 2023-12-03 15:16:48.229000             🧑  作者: Mango
toArray
和 makeArray
有什么区别?在 jQuery 中,toArray
和 makeArray
方法都可以将一个类数组对象(如 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
方法可以将两个或多个数组合并成一个数组,还可以将类数组对象转换为数组,并且可以设置数组的起始索引。因此,在实际开发中,我们可以根据自己的需求来选择使用哪个方法。