Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 检查值是否等于0,而不考虑十进制值?_Javascript_Node.js - Fatal编程技术网

Javascript 检查值是否等于0,而不考虑十进制值?

Javascript 检查值是否等于0,而不考虑十进制值?,javascript,node.js,Javascript,Node.js,我在平衡高斯核的sigma。我希望在数组的第一个索引等于0(任何十进制值)时中断while循环 我发现,如果值还包含任何小数,如0.000013301,那么简单地尝试匹配0将不匹配 var gaussianKernel1d = (function() { var sqr2pi = Math.sqrt(2 * Math.PI); return function gaussianKernel1d(size, sigma) { 'use strict';

我在平衡高斯核的sigma。我希望在数组的第一个索引等于
0(任何十进制值)
时中断while循环

我发现,如果值还包含任何小数,如
0.000013301
,那么简单地尝试匹配
0
将不匹配

var gaussianKernel1d = (function() {
    var sqr2pi = Math.sqrt(2 * Math.PI);

    return function gaussianKernel1d(size, sigma) {
        'use strict';

        // ensure size is even and prepare variables
        var width = (size / 2) | 0,
            kernel = new Array(width * 2 + 1),
            norm = 1.0 / (sqr2pi * sigma),
            coefficient = 2 * sigma * sigma,
            total = 0,
            x;

        // set values and increment total
        for (x = -width; x <= width; x++) {
            total += kernel[width + x] = norm * Math.exp((-x * x) / coefficient);
        }

        // divide by total to make sure the sum of all the values is equal to 1
        for (x = 0; x < kernel.length; x++) {
            kernel[x] /= total;
        }

        return kernel;
    };
})();

let i = 0.01;
let kernelArray = gaussianKernel1d(512, i);
while (kernelArray[0] === 0) {
    i = i + 0.01;
    kernelArray = gaussianKernel1d(512, i);
var gaussianKernel1d=(函数(){ var sqr2pi=Math.sqrt(2*Math.PI); 返回函数gaussianKernel1d(大小,西格玛){ "严格使用",; //确保大小均匀,并准备变量 变量宽度=(大小/2)| 0, 内核=新数组(宽度*2+1), 标准=1.0/(sqr2pi*西格玛), 系数=2*sigma*sigma, 总计=0, x; //设置值和增量合计 对于(x=-width;x请尝试以下内容

$b=0

while((字符串)数组[0]!==(字符串)$b){
//仅重新生成随机值的代码

}

埃帕斯卡雷洛的解决方案是正确的:

while (Math.floor(kernelArray[0]) === 0)
只要
kernelArray[0]
=0
<1
的值,它就会继续循环

当然,另一个明显的方法就是在上面的描述中写下等式:

while (kernelArray[0]) >= 0 && kernelArray[0] < 1)
while(kernelArray[0])>=0&&kernelArray[0]<1)

这甚至不是JavaScript。字符串指的是什么?这是一个不需要检查的解决方案syntax@srb633(string)引用该值的类型转换,当然,JavaScript是松散类型的,它没有类型转换,这是强类型语言特有的概念。(它确实有转换功能,但您不是这样做的……因此我的评论是,这不是JavaScript。)评论不用于扩展讨论;这段对话是。