我是nodejs的新手,目前正尝试用lambda编写函数,我有一个来自SQL数据库的查询,该查询为我提供了来自具有不同模式的字段中的对象。 如果所有这些值都不为null,则需要所有这些值作为字符串返回。
这有效,但是重复太多了。您是否知道更好的方法,在Object.values ..或function等上使用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 );
答案 0 :(得分:1)
您需要分配dataField
的属性,以便将空字符串正确放置在对象上,否则将""
输入
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);
});
或者,如果需要替换对象上的每个属性值,则无需对属性名称进行硬编码,并且可以通过遍历输入的Object.entries
来从功能上生成结果:< / p>
const Result = results.map((dataField) => (
Object.entries(dataField).reduce((a, [key, val]) => {
a[key] = val === null
? ''
: val.toString();
return a;
}, {})
));
答案 1 :(得分:1)
遍历所有属性
import random
class PC(object):
def __init__(self, health, damage):
self.health = health
self.damage = random.randint(1,damage)
Player_character = PC(10,5)
Spider = PC(2,3)
print(Player_character.health)
def fightspider(spiderturn):
rounds = 0
while spiderturn == 1 and rounds < 2:
Spider.damage
Player_character.health = Player_character.health - Spider.damage
rounds += 1
print(Spider.damage)
print(Player_character.health)
def fightplayer(playerturn):
if playerturn == 1:
Spider.damage
fightspider(1)