[英]Time complexity (Big-O) of converting an array to a Set
所以有多种方法可以在 JS 中将Array
转换为Set
。
示例 #2肯定是O(n) ,因为它遍历数组的所有元素。 示例 #1的情况是否相同? 还是JS在后台为我们做了一些优化?
如果是,使用Example #1有什么缺点吗?
const arr = [ 1, 3, 2, 3, 5 ];
const set = new Set(arr);
console.log(set);
/*
Output: Set { 1, 3, 2, 5 }
*/
const arr = [ 1, 3, 2, 3, 5 ];
const set = new Set();
arr.map(item => set.add(item));
console.log(set);
/*
Output: Set { 1, 3, 2, 5 }
*/
它仍然是O(n)
; JS 没有任何神奇的方法可以将所有n
元素放入Set
中,而无需实际遍历所有n
元素。 低于O(n)
的唯一方法是跳过一些元素,如果必须考虑将所有元素都包含在Set
中,这显然是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.