javascript - 数组减少空值之和

标签 javascript arrays

无法让数组缩减工作:

var labels  = ["MetricLinuxMemory","memCached","memTotalFree","MetricLinuxCPU","CpuRawSystem","memTotalSwap"];
var columns = [{values:[12,1,2,23,null,2]},{values:[12,null,2]},{values:[12,1,2]},{values:[12,1,2]},{values:[12,1,2]},{values:[12,1,2]}];

var data = {};      //Selected Performance data

// Loop through labels
for (var i = 0; i < labels.length; i++) {   

    var label = labels[i];

    //Search for calculated vlaue (Metric)
    if(label.includes("Metric")){

        //Create property in data object
        data[label] = {};

        var metric  = data[label];
            metric.samples = [];
            metric.sum  = 1;

        //Get appropriate column
        var values = columns[i].values;

        // Loop through values
        for (var ii = 0; ii < values.length; ii++) {    

            //Convert to numeric
            var value = parseInt(values[ii], 10);

            //Push to data
            metric.samples.push(value);
            metric.sum = metric.samples.reduce(function(a, b) { return a + b; }, 0);

        }


    }
}

期望的输出是:

{
    "MetricLinuxMemory": {
        "samples": [
            ...
            23,
            null,
            ...
        ],
        "sum": 40
    },
    ...
}

但是我似乎无法得到一笔钱。并在 MetricLinuxMemory 中获取 null。 parseInt 不应该处理 null 输入并将其转换为 0 吗?

最佳答案

Shouldn't parseInt take care of the null input and convert it for example to 0?

恰恰相反。 parseIntnull 转换为 NaN(在将其转换为字符串 "null" 之后)。除了字符串之外,您不应该在任何其他内容上使用 parseInt!

如果您只是将其省略,它甚至会起作用,因为添加一个带有 null 的数字会导致它被强制为 0。但是,如果您想明确说明这一点,只需将 samples.push(value) 语句放入 if (value != null)if ( typeof value == "number") 语句。

关于javascript - 数组减少空值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065138/

相关文章:

mysql - 需要来自两个 sql 列的关联数组

javascript - 在网站的新页面上保持事件菜单打开

Internet Explorer 中的 Javascript 变量意外更改

javascript - 集合大小和数组长度 - sonarqube

javascript - 按键减少数组对象并返回嵌套对象

javascript - 如何向现有对象添加原型(prototype)属性

javascript - 子类中的 "ReferenceError: this is not defined"

javascript - 无法在 React 和 Meteor 中使用 componentWillMount 读取未定义的属性

javascript - 在 IE 中使用 javascript 以编程方式触发组合框的 onchange 不起作用

java - 从一个类访问另一个类的数组数据时遇到问题