Javascript 如果不为空,则将对象的所有值从整数替换为字符串

Javascript 如果不为空,则将对象的所有值从整数替换为字符串,javascript,node.js,Javascript,Node.js,我是nodejs新手,目前正在尝试用lambda编写函数,我有一个来自SQL数据库的查询,它为我提供了来自具有不同模式的字段的对象。 我需要所有这些值作为字符串返回,如果它们不为null 这是可行的,但是重复太多了。您知道更好的方法吗,在Object.values上使用foreach。。或功能等。。我就是搞不好 a var Result = []; var item = results.map(dataField) => { dataField.es_id == null

我是nodejs新手,目前正在尝试用lambda编写函数,我有一个来自SQL数据库的查询,它为我提供了来自具有不同模式的字段的对象。 我需要所有这些值作为字符串返回,如果它们不为null

这是可行的,但是重复太多了。您知道更好的方法吗,在Object.values上使用foreach。。或功能等。。我就是搞不好

 a var Result = [];
 var item =  results.map(dataField) => {
     dataField.es_id  == null ? "" : dataField.es_id = dataField.es_id.toString();
     dataField.status  == null ? "" : dataField.status = dataField.status.toString();
     dataField.er_Act  == null ? "" : dataField.er_Act = dataField.er_Act.toString();

     Result.push(dataField);


});
callback(null, Result );

您需要分配给
数据字段的属性
,以便将空字符串正确地放置在对象上,否则您的
“”
将被插入

dataField.es_id  == null ? "" :
只是一个未使用的表达式

要减少代码重复,请迭代属性数组:

const Result = [];
results.forEach((dataField) => {
  ['es_id', 'status', 'er_Act'].forEach((prop) => {
    dataField[prop] = dataField[prop] === null
    ? ''
    : dataField[prop].toString();
  });
  Result.push(dataField);
});
或者,如果需要替换对象上的每个属性值,则无需对属性名称进行硬编码,您可以通过对
对象进行迭代来更有效地生成结果。输入的条目

const Result = results.map((dataField) => (
  Object.entries(dataField).reduce((a, [key, val]) => {
    a[key] = val === null
    ? ''
    : val.toString();
    return a;
  }, {})
));

您需要分配给
数据字段的属性
,以便将空字符串正确地放置在对象上,否则您的
“”
将被插入

dataField.es_id  == null ? "" :
只是一个未使用的表达式

要减少代码重复,请迭代属性数组:

const Result = [];
results.forEach((dataField) => {
  ['es_id', 'status', 'er_Act'].forEach((prop) => {
    dataField[prop] = dataField[prop] === null
    ? ''
    : dataField[prop].toString();
  });
  Result.push(dataField);
});
或者,如果需要替换对象上的每个属性值,则无需对属性名称进行硬编码,您可以通过对
对象进行迭代来更有效地生成结果。输入的条目

const Result = results.map((dataField) => (
  Object.entries(dataField).reduce((a, [key, val]) => {
    a[key] = val === null
    ? ''
    : val.toString();
    return a;
  }, {})
));

迭代所有属性

a var Result = [];
var item = results.map(dataField) => {
  for (var property in dataField) {
      if (dataField.hasOwnProperty(property)) {
          dataField[property] = dataField[property] === null ? "" : dataField[property].toString()
      }
  }

  Result.push(dataField);
});
callback(null, Result );

迭代所有属性

a var Result = [];
var item = results.map(dataField) => {
  for (var property in dataField) {
      if (dataField.hasOwnProperty(property)) {
          dataField[property] = dataField[property] === null ? "" : dataField[property].toString()
      }
  }

  Result.push(dataField);
});
callback(null, Result );

不应该
dataField.es_id==null吗?“”:dataField.es_id=dataField.es_id.toString()
be
dataField.es\u id==null?“”:dataField.es_id.toString()?不应该
dataField.es\u id==null吗?“”:dataField.es_id=dataField.es_id.toString()
be
dataField.es\u id==null?“”:dataField.es_id.toString()?谢谢,这看起来和我想要的非常接近,问题是它将(null)变成(“”),有没有办法保持null属性不变。。作为null@adimona为什么不呢?)只需将
null
数据字段[属性]
替换为
”。同样的结果,null在本例中略短。@adimona,你确定代码中的语法吗?谢谢,这看起来很接近我想要的,问题是它将(null)变为(“”),有没有办法保持null属性不变。。作为null@adimona为什么不呢?)只需将
null
数据字段[属性]
替换为
”。同样的结果,null在本例中只短了一点。@adimona,你确定代码中的语法吗?