我试图检查,如果存在某些单词,但据我所知,它似乎不起作用。
Chars = {
ae: 'hello',
oe: 'world',
};
if(ae in Chars){
document.write('yes');
}else{
document.write('no');
}
我只是想知道,如果ae
存在
答案 0 :(得分:3)
答案 1 :(得分:0)
你可以做到
if(Chars.ae){...}
else {...}
答案 2 :(得分:0)
如果它是您在编码时知道的单个值,则可以执行
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
答案 3 :(得分:0)
要使用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
对象,我介绍过你会得到一个是,两个是,另一个是。