我有以下脚本:
var done = {'foo':1};
var mylist = ['foo','bar','qux'];
mylist.forEach(function(val) {
// This if condition doesn't work
if (val in done) { continue;}
console.log(val)
});
它所做的是循环查看mylist
并检查done
中是否存在任何成员,如果存在,则跳过打印。
但我的代码给出了以下错误消息:
Uncaught SyntaxError: Illegal continue statement(…)
预期结果如下:
bar
qux
正确的方法是什么?
如果您希望以更可读的方式执行,可以使用Array的filter
和Object.keys
:
var done = {'foo':1};
var mylist = ['foo','bar','qux'];
// Utility function
var has = function(obj, prop) {
return Object.keys(obj).indexOf(prop) !== -1;
};
// Get missing values
var missingValues = mylist.filter(function(val) {
return !(has(done, val));
});
// Print each of them
missingValues.forEach(function(val) {
console.log(val);
});
JSBin
只需在条件中反转逻辑即可:
var done = { foo: 1 },
mylist = ['foo', 'bar', 'qux'];
mylist.forEach(function (val) {
if (!(val in done)) {
document.write(val + '<br>');
}
});
continue
将无法在forEach
中工作,您可以在这里看到光标中的“continue”。forEach()。您可以使用return
而不是continue
。
您可以使用hasOwnProperty
检查对象是否具有属性。
var done = {
'foo': 1
};
var mylist = ['foo', 'bar', 'qux'];
mylist.forEach(function(val) {
// This if condition doesn't work
if (!done.hasOwnProperty(val)) {
console.log(val);
document.write(val + '<br />');
}
});
问题内容: 如何检查JavaScript对象或数组中是否存在特定键? 如果密钥不存在,而我尝试访问它,它将返回false吗?还是抛出错误? 问题答案: 检查不确定性不是测试密钥是否存在的准确方法。如果密钥存在但值实际上是怎么办? 您应该改为使用运算符: 如果要检查密钥是否不存在,请记住使用括号: 或者,如果您要特别测试对象实例的属性(而不是继承的属性),请使用: 有关和的方法之间的性能比较,关键是
我有一个js对象,如下所示。 我现在的代码是。 我的问题是我的代码可以有的值,但是如果在这种情况下我做了然后我就得到了现实。 如何确保我的数据具有和,以及可以具有值。 jsfiddle:https://jsfiddle.net/3jo7vx4p/ 我们衷心感谢您的帮助。
问题内容: 假设类型 A的 对象存储在DB中。这是我使用hibernate从数据库加载特定数据库的方式: 如果id = 1的对象不存在,我将得到 ObjectNotFoundException 。但是,有没有一种方法可以检查此类对象是否存在而不必捕获异常?我想拥有的是: 找不到hibernate文档… 问题答案: 您可以使用: 如果对象在数据库中不存在,它将返回null。您可以在Hibernate
问题内容: 我有下一个JSON: 知道JSON对象中是否存在“ dog”值的最佳方法是什么? 谢谢。 解决方案1 解决方案2(JQuery) 解决方案3(使用some()方法) 问题答案: JSON变量引用具有一个称为“名称”的属性的对象数组。我不知道最好的方法,但这就是我的工作吗?
上面是我正在处理的JSON对象。我想检查键是否存在。我尝试了下面的代码,但它不起作用。有办法实现吗?
问题内容: 我的代码是 但是,有时我无法加载。萤火虫错误 me.onChange不是一个函数 我想优雅地降级,因为这不是我程序中最重要的功能。给出相同的错误。 关于如何确保它存在然后仅执行的任何建议? (下面的任何一种方法都不能尝试抓到一件作品) 问题答案: 尝试这样的事情: 或更好(根据UpTheCreek推荐的评论)