我有一个对象,如果不存在键,则使用javascript将其设置为null。
如果键在对象obj
中不存在,例如ccy
不存在,cn
MY
和CA
,则如何使用javascript分配和设置为null
var obj=[{
"cn": "TH",
"lang": "thai",
"bank": "yes",
"ccy": "THB"
},{
"cn": "MY",
"lang": "malay",
},{
"cn": "CA",
"lang": "english",
"bank": "yes"
}]
render(){
obj.map(e=>
return html`
<h1>${e.cn}</h1>
<h5>${e.lang}</h5>
<h6>${e.ccy}</h6>
`
)
}
答案 0 :(得分:4)
最简单的方法是,只要您确定e.ccy
不会虚假({{1},false
,undefined
,null
,0
或""
)将使用逻辑或运算符NaN
:
||
答案 1 :(得分:3)
如果您不想将默认的后备值写入模板并希望保持模板干净,还可以在渲染之前对数据进行预处理并设置缺失值:
var obj = [{
"cn": "TH",
"lang": "thai",
"bank": "yes",
"ccy": "THB"
}, {
"cn": "MY",
"lang": "malay",
}, {
"lang": "english",
"bank": "yes"
}]
obj = obj.map(({
cn = null,
ccy = null,
...rest
}) => Object.assign(rest, { cn, ccy }))
console.log(obj)
答案 2 :(得分:2)
您可以使用运算符in
来检查密钥是否存在,如下所示:
运算符in
是避免对虚假值进行错误检查的最安全方法。
{"ccy" in e ? e.ccy : null}
答案 3 :(得分:0)
任何未在javascript对象中定义的键都将被视为未定义,因此您可以选择
(typeof obj.ccy === "undefined") ? null : obj.ccy;
(obj.ccy == undefined) ? null : obj.ccy;
如果您不熟悉三元表达式。您也可以这样写上面的内容。
if(obj.ccy == undefined){
obj.ccy = null;
}
答案 4 :(得分:0)
有多种方法可以检查对象中是否存在给定键。
if(!obj[0].hasOwnProperty('cn')) {
obj[o].cn = null
}
或
if(typeof obj[0].cn === 'undefined') {
obj[0].cn = null;
}
或
if(obj[0].cn === undefined) {
obj[0].cn = null;
}
后两种情况非常相似,typeof
通常在您要检查变量是否已在代码中定义和可访问时使用。
现在的真实示例如下:
var missing = ['cn', 'ccy'];
for(var i = 0; i < obj.length; i++) {
for(var j = 0; j < missing.length; j++) {
if(!obj[i].hasOwnProperty(missing[j])) {
obj[i][missing[j]] = null;
}
}
}
答案 5 :(得分:0)
x.Select(message => new bless { text = message.MessageText }).ToList()