Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 - Fatal编程技术网

Javascript 返回最低数字的数组位置(非负)

Javascript 返回最低数字的数组位置(非负),javascript,arrays,Javascript,Arrays,我需要返回元素最接近零的位置,而不是负数 我有4个卷大小(英寸)可用于剪切胶片。我正在尝试输入一个宽度变量并从数组元素中减去,最接近0的值将返回最佳卷大小的数组位置。我希望这有意义。谢谢 var width = "" var rollArray = [36, 48, 60, 72] var newArray = [] for(i in rollArray){ newArray.push ((rollArray[i]) - width) }

我需要返回元素最接近零的位置,而不是负数

我有4个卷大小(英寸)可用于剪切胶片。我正在尝试输入一个宽度变量并从数组元素中减去,最接近0的值将返回最佳卷大小的数组位置。我希望这有意义。谢谢

  var width = ""

var rollArray = [36, 48, 60, 72]
            var newArray = []
            for(i in rollArray){ newArray.push ((rollArray[i]) - width) }

alert(newArray);
返回宽度减去每个元素,现在我需要找到如何返回数组位置的最低值,以便从等效的rollArray位置获取卷大小。

var width=“”
var width = 41;
var rollArray = [36, 48, 60, 72];
var closest = rollArray.filter(function(ele){return ele-width >= 0}).sort()[0];
var rollArray=[36,48,60,72] var newArray=[] var min=1000000//一个非常大的数字,您知道它大于(rollArray[i])-宽度) var minIndex=-1 对于(var i=0;i0) { min=rollArray[i])-宽度; minIndex=i; } } 警报(minIndex); 警报(新阵列);
var-width=37;
var rollArray=[36,48,60,72];
var=null;
对于(变量i=0;i=宽度)
{

如果(closest==null | | rollArray[i]注意,作为一种适当的实践,不要在JavaScript中使用
for来迭代数组。它的目的是迭代对象属性。而应该使用
for(var i=0;iSo使用您的示例,您希望返回什么?0因为36最接近于零?有比这更简单的方法。但这是一种有趣的方法Genius,太好了!非常感谢!
var width = ""

var rollArray = [36, 48, 60, 72]
            var newArray = []
            var min=1000000 //a very large number that you know it's larger than (rollArray[i]) - width)
            var minIndex=-1
            for (var i=0; i<rollArray.length; i++){ newArray.push ((rollArray[i]) - width) 
            if (min< rollArray[i]) - width &  rollArray[i]) - width >0)
            {
                            min = rollArray[i]) - width;
                            minIndex = i;
            }
}
alert (minIndex);
alert(newArray);
var width = 37;
var rollArray = [36, 48, 60, 72];
var closest = null;
for (var i=0; i<rollArray.length; i++)
{
    if (rollArray[i] >= width)
    {
        if (closest == null || rollArray[i] <= rollArray[closest])
        {
            closest = i;
        }
    }
}