Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中检查对象是否存在后如何跳过循环_Javascript_Html - Fatal编程技术网

在JavaScript中检查对象是否存在后如何跳过循环

在JavaScript中检查对象是否存在后如何跳过循环,javascript,html,Javascript,Html,我有以下脚本: 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中是否存在任何成员,如果存在,则跳过打印 但我的代码给出了以下错误消息: Unc

我有以下脚本:

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

正确的方法是什么?

继续
将无法在
forEach
中工作,如您所见。 您可以使用
return
而不是
continue

可以使用检查对象是否具有属性

var done={
“foo”:1
};
var mylist=['foo','bar','qux'];
mylist.forEach(函数(val){
//如果条件不起作用,则此选项无效
如果(!done.hasOwnProperty(val)){
控制台日志(val);
document.write(val+'
'); } });您可以使用数组,如果您希望以更可读的方式执行此操作:

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);
});

只需在以下条件下反转逻辑即可:

var done={foo:1},
mylist=['foo','bar','qux'];
mylist.forEach(函数(val){
如果(!(val输入完成)){
document.write(val+'
'); } });可能重复的