Javascript将数组重新映射为对象,0(零)值被排除在外

Javascript remaping array into object the 0 (zero) values are excluded

本文关键字:排除 数组 新映射 Javascript 映射 对象      更新时间:2023-09-26

我有一个(另一个)问题:将数组重新映射为对象,0(零)值被排除在外。为什么以及如何做到不忽略这个值?我需要这个0(0)值。:)

我的数组:

var data = {
"queryInfo": {
    "totalRows": "18"
},
    "resultset": [
    ["A", "MAXI", "ACC - GC", "SER", 5646.5],
    ["A", "MAXI", "ACC - SACC", "KIT", 2474.93],
    ["A", "MAXI", "ACC - SACC", "NET", 5418.72],
    ["A+", "MAXI", "ACC - DIV", "FORM", 1531.04],
    ["A+", "MAXI", "ACC - DIV", "FOR", 1147.5],
    ["A+", "MAXI", "ACC - DIV", "HI TECH", 0],
    ["A+", "MAXI", "ACC - GC", "TEM", 435],
    ["A+", "MAXI", "ACC - LPI", "ALYS", 651],
    ["A+", "MAXI", "ACC - LPI", "FIR", 0],
    ["A+", "MAXI", "SCC", "DRUM", 3693.36],
    ["A+", "MAXI", "SCC", "HEL", 0],
    ["A+", "MAXI", "SCC", "LOT", 873],
    ["B", "MAXI", "SCC", "PUR", 9356],
    ["B", "MAXI", "SCC", "SQU", 48474.06],
    ["B", "MAXI", "#null", "HA", 1711],
    ["B", "MAXI", "#null", "#null", 1197.6],
    ["#null", "MAXI", "#null", "#null", 2940],
    ["#null", "#null", "#null", "#null", 2372]
],
    "metadata": [{
    "colIndex": 0,
        "colType": "String",
        "colName": "CP"
}, {
    "colIndex": 1,
        "colType": "String",
        "colName": "ST"
}, {
    "colIndex": 2,
        "colType": "String",
        "colName": "GR"
}, {
    "colIndex": 3,
        "colType": "String",
        "colName": "PR"
}, {
    "colIndex": 4,
        "colType": "Numeric",
        "colName": "VALUE"
}]
};

和我的功能:

function recom(resultset) {
  var obj = {};
  for (var j = 0; j < resultset.length; j++) {
    if (resultset[j]) {
        obj[data.metadata[j].colName] = resultset[j];
    }
  }
  return obj;
}
var arr = [];
for (var i = 0; i < data.resultset.length; i++) {
  if (data.resultset[i] !== null) {
    arr.push(recom(data.resultset[i]));
  }
}

此函数获取每个元数据,并作为键添加到下一个final数组中。正如你在这个小提琴中看到的,结果必须是这样的:{"CP":"+","圣":"MAXI"、"GR":"鳞状细胞癌"、"公关":"鼓","价值":3693.36},但当指数4的数据。Resultset是0(零)我的函数在该级别返回任何东西:{"CP":"+","圣":"MAXI"、"GR":"鳞状细胞癌"、"公关":"冥界"}

正确的结果是:{"CP":"+","圣":"MAXI"、"GR":"鳞状细胞癌"、"公关":"冥界"、"价值":0}

由于resultsel的0值,索引"VALUE"缺失。如何使我的功能正常工作。

谢谢。

recom中的条件更改为显式检查零:

所以不用这个:

if (resultset[j])

试试这个:

if (resultset[j] === 0 || resultset[j])