array.from_Array.From 心已赠人 2023-02-22 03:36 24阅读 0赞 array.from In the past we used a variety of hacks to convert Array-like objects (like `arguments` and `NodeList`) to a true array. You can see a few of those hacks here: 过去,我们使用各种技巧将类似Array的对象(例如`arguments`和`NodeList` )转换为真正的数组。 您可以在这里看到其中一些骇客: * [Convert arguments to Array][] [将参数转换为数组][Convert arguments to Array] * [Convert NodeList to Array][] [将NodeList转换为数组][Convert NodeList to Array] Essentially we would use `Array.prototype.slice.call()` on the `arguments` or `NodeList` to do the conversion. These days there is a more straightforward solution to converting one type to another. 本质上,我们将对`arguments`或`NodeList`使用`Array.prototype.slice.call()`进行转换。 如今,有一种更直接的解决方案可以将一种类型转换为另一种类型。 ## 将`NodeList`转换为`Array` **(**Convert `NodeList` to `Array`**)** ## var divs = Array.from(document.querySelectorAll('div')); // Array[232] (every DIV on the page) ## 将`arguments`转换为`Array` **(**Convert `arguments` to `Array`**)** ## function something() { var args = Array.from(arguments); // Array['yes', 1, {}] } something('yes', 1, {}); ## 将`String`转换为`Array` **(**Convert `String` to `Array`**)** ## Array.from('JavaScript'); // Same as 'JavaScript'.split('') // ["J", "a", "v", "a", "S", "c", "r", "i", "p", "t"] The code is much cleaner and no need for the `slice` hack! 代码更简洁,无需`slice`破解! > 翻译自: [https://davidwalsh.name/array-from][https_davidwalsh.name_array-from] array.from [Convert arguments to Array]: https://davidwalsh.name/arguments-array [Convert NodeList to Array]: https://davidwalsh.name/nodelist-array [https_davidwalsh.name_array-from]: https://davidwalsh.name/array-from
还没有评论,来说两句吧...