Javascript 如果不为空,则将对象的所有值从整数替换为字符串
我是nodejs新手,目前正在尝试用lambda编写函数,我有一个来自SQL数据库的查询,它为我提供了来自具有不同模式的字段的对象。 我需要所有这些值作为字符串返回,如果它们不为null 这是可行的,但是重复太多了。您知道更好的方法吗,在Object.values上使用foreach。。或功能等。。我就是搞不好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
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()
bedataField.es\u id==null?“”:dataField.es_id.toString()代码>?不应该dataField.es\u id==null吗?“”:dataField.es_id=dataField.es_id.toString()
bedataField.es\u id==null?“”:dataField.es_id.toString()代码>?谢谢,这看起来和我想要的非常接近,问题是它将(null)变成(“”),有没有办法保持null属性不变。。作为null@adimona为什么不呢?)只需将null
或数据字段[属性]
替换为“
”。同样的结果,null在本例中略短。@adimona,你确定代码中的语法吗?谢谢,这看起来很接近我想要的,问题是它将(null)变为(“”),有没有办法保持null属性不变。。作为null@adimona为什么不呢?)只需将null
或数据字段[属性]
替换为“
”。同样的结果,null在本例中只短了一点。@adimona,你确定代码中的语法吗?