Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组转换为集合的时间复杂度(Big-O)_Javascript_Arrays_Set_Big O_Computer Science - Fatal编程技术网

Javascript 将数组转换为集合的时间复杂度(Big-O)

Javascript 将数组转换为集合的时间复杂度(Big-O),javascript,arrays,set,big-o,computer-science,Javascript,Arrays,Set,Big O,Computer Science,因此,在JS中有多种方法可以将数组转换为集合 示例#2肯定是O(n),因为它遍历数组的所有元素。例如#1,情况也是这样吗?或者JS在后台为我们做一些优化 如果是,使用示例1是否有任何缺点 例1 例2 还是O(n);JS没有神奇的方法可以将所有n元素放入Set中,而不实际遍历所有n元素。低于O(n)的唯一方法是跳过一些元素,如果必须考虑将所有元素都包含在集合中,这显然是不可能的 const arr = [ 1, 3, 2, 3, 5 ]; const set = new Set(arr); co

因此,在JS中有多种方法可以将数组转换为集合

示例#2肯定是O(n),因为它遍历数组的所有元素。例如#1,情况也是这样吗?或者JS在后台为我们做一些优化

如果是,使用示例1是否有任何缺点

例1 例2 还是
O(n)
;JS没有神奇的方法可以将所有
n
元素放入
Set
中,而不实际遍历所有
n
元素。低于
O(n)
的唯一方法是跳过一些元素,如果必须考虑将所有元素都包含在
集合中,这显然是不可能的

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 }
*/