我正在尝试检查是否存在某些单词,但据我尝试,它似乎不起作用。
Chars = {
ae: 'hello',
oe: 'world',
};
if(ae in Chars){
document.write('yes');
}else{
document.write('no');
}
我只是想知道,如果ae
存在
我正在尝试检查是否存在某些单词,但据我尝试,它似乎不起作用。
Chars = {
ae: 'hello',
oe: 'world',
};
if(ae in Chars){
document.write('yes');
}else{
document.write('no');
}
我只是想知道,如果ae
存在
如果它是您在编码时知道的单个值,您可以这样做
if (Chars.ae !== undefined) {
document.write('yes');
}
else {
document.write('no');
}
如果您希望能够在运行时动态地计算出这些,比如假设您有一个表示要检查的属性的变量,那么您可以使用括号表示法。
Chars = {
ae: 'hello',
oe: 'world',
.. bunch of other properties
};
function doesCharEntryExist(entry) {
return Chars[entry] !== undefined;
}
console.log(doesCharEntryExist('ae'));
console.log(doesCharEntryExist('oe'));
console.log(doesCharEntryExist('blah'));
输出
true
true
false
要使用in
运算符,您需要加上ae
引号:
if ("ae" in Chars){
或者您可以使用如下变量:
var valueToTest = "ae";
if (valueToTest in Chars) {
您在另一个答案下的评论中说,您有超过一百个值要检查。你没有说你是如何管理这一百个的,但假设它们在一个数组中,你可以使用一个循环:
var keyNamesToTest = ["ae", "xy", "zz", "oe"];
for (var i = 0; i < keyNamesToTest.length; i++) {
if (keyNamesToTest[i] in Chars){
document.write('yes');
// key name exists - to get the value use Chars[keyNamesToTest[i]]
}else{
document.write('no');
}
}
对于Chars
你用我介绍的测试数组展示的对象,你会得到一个是,两个不是,另一个是。
你可以做
if(Chars.ae){...}
else {...}