使用NodeJs
+ Express
创建REST API。一切运作良好,但我无法理解如何遍历request.body
并检查其undefined
和empty
值的字段,并仅为有效数据分配新对象。 />
request.body 看起来像:
{
key: 'value',
otherKey: 'otherValue',
oneMoreKey: '',
oneMoreKey2: undefined,
oneMoreKey3: null
}
在那一端,我的对象看起来像是:
let contactData = Object.assign({},{
'key': 'value',
'otherKey': 'otherValue'
})
寻找您的建议和帮助
答案 0 :(得分:4)
function getCleanObject(oldObject) {
var newObject = {};
for (var property in oldObject) {
var value = oldObject[property];
if (value) newObject[property] = value;
}
}
您可以先创建一个新的干净Object
var newObject = {}; // same as new Object();
然后使用for loop
迭代所有对象的属性。
for (var property in oldObject)
然后获取该属性的值
var value = oldObject[property];
如果值为Troothy
,请将该属性添加到新Object
if (value) newObject[property] = value;
请注意,这样false
值将被拒绝。要允许将其复制到新Object
,您应将if
语句替换为
if(value || value === false)
此外,如果您复制的Object
inherits
也来自其他Object
,那么它可能会有额外的属性,如果您不希望它们被包含在内您应该将if
语句更改为
if(value && oldObject.hasOwnProperty(value))
并且请记住for(var item in object)
!= for(var item of list)
in
用于迭代对象的属性,而of
用于迭代iteratable
(即列表)。此外,所有浏览器均支持in
,of
不支持internet explorer
。
答案 1 :(得分:0)
your_object = {
key: request.body[key] || 'default',
otherKey: request.body[otherKey] || 'default',
oneMoreKey: request.body[oneMoreKey] || 'default'
...
}
关于或(||)如何工作的解释JavaScript OR (||) variable assignment explanation