Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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:数组除以值的有效方法_Javascript_Arrays_Performance - Fatal编程技术网

javascript:数组除以值的有效方法

javascript:数组除以值的有效方法,javascript,arrays,performance,Javascript,Arrays,Performance,只是想知道,用标量划分数组最有效的方法是什么?我可以很清楚地对它进行循环,但在我的例子中,效率是最重要的 常见的琐碎方式: var array_2 = [] var array_1 = [original_data var divisor = my_scalar for(var i = 0, length = array.length; i < length; i++){ array_2.push(array[i]/divisor) } var数

只是想知道,用标量划分数组最有效的方法是什么?我可以很清楚地对它进行循环,但在我的例子中,效率是最重要的

常见的琐碎方式:

var array_2 = []
var array_1 = [original_data
var divisor = my_scalar
for(var i = 0, length = array.length; i < length; i++){
            array_2.push(array[i]/divisor)
         }
var数组_2=[]
变量数组_1=[原始_数据]
var除数=my_标量
for(var i=0,length=array.length;i

我能使用的任何技巧(或新方法)

var newData = data.map(function(item) { return item/scalar }
你说过你想要最有效的方法。相当确定你正在做的事情很接近,但你想要的是分配而不是推送:

for(var i = 0, length = array.length; i < length; i++){
    array_2[i] = array[i]/divisor;
}
for(var i=0,length=array.length;i

话虽如此:这与
map
之间的区别将非常小,这是一个非常罕见的重要用例。然而
map
是清晰、简单、简短的…

var array\u 2=array\u 1.map(i=>i/除数)
很酷尝试正确的方法away@tymeJV:是什么让你认为一堆函数调用会比一个
for
循环更高效?(请注意,效率上的差异不太可能重要……)请注意,你常用的琐碎方法可能更高效(取决于你谈论的JavaScript引擎):
数组_2[i]=数组[i]/除数
(非
推送
)。这个答案描述了一种可能更有效的方法,但似乎没有得到广泛的支持。除此之外,提供的所有解决方案,无论是使用
map
还是仅使用一个循环,在效率上都基本相同。这是一种效率非常非常非常低的方法,而不是更高的方法。坦率地说,被答案的快速性和精确性!我们将尝试两者。