[1,2,3].forEach(function(el) {
if(el === 1) break;
});
Run Code Online (Sandbox Code Playgroud)
如何forEach在JavaScript中使用新方法执行此操作?我试过了return;,return false;而且break.break崩溃,return除了继续迭代之外什么都不做.
当没有任何异常被抛出时,使用几个try-catch块是"慢"吗?我的问题与此问题相同,但对于Javascript.
假设我有20个函数,其中包含try-catch块.另一个函数调用这20个函数中的每一个.他们都不会抛出异常.由于这个try-catch块,我的代码执行速度会慢还是执行得更差?
javascript performance exception-handling exception try-catch
如何修改此代码以便我可以获取field.DependencyFieldEvaluated值并在获得此值后立即退出函数?
function discoverDependentFields(fields) {
fields.forEach(function (field) {
if (field.DependencyField) {
var foundFields = fields.filter(function (fieldToFind) { return fieldToFind.Name === field.DependencyField; });
if (foundFields.length === 1) {
return field.DependencyFieldEvaluated = foundFields[0];
}
}
});
}
Run Code Online (Sandbox Code Playgroud) 刚看到有人这么写:
let id = 1;
...
let employee = null;
for (const e of employees) {
if (e.id === id) {
employee = e;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
似乎是一种过于复杂的写法:
let id = 1;
...
let employee = employees.find(e => e.id === id);
Run Code Online (Sandbox Code Playgroud)
使用带有 a breakvs a的循环有什么好处find()吗?
find()幕后的实现是什么?
在 reactjs-babel 应用程序中,我尝试使用break时发生了奇怪的行为forEach
var SomeElement = React.CreateClass({
... ,
getMessageStatus: function getMessageStatus(message) {
var states = this.state.messages_states;
var status = undefined;
states.forEach(function (messageEntity) {
if (messageEntity.id == message.id && messageEntity.is_question == message.is_question) {
status = messageEntity.status;
break; // - this is not working
}
});
return status;
},
...
});
Run Code Online (Sandbox Code Playgroud)
breakCannot determine target for 'break'在 PhpStorm 和 Babel repl 中说它像repl: Unsyntactic break
如何正确使用 break 一样?
我有一个对象mobile_specs,它有几个字段,例如 DeviceName、Brand、Camera。我循环遍历mobile_specs对象,以便我可以以表格格式打印两个手机的规格:
var i=0;
Object.keys(mobile_specs).forEach(function(key) {
if(i==5)
{
break;
}
var mobile1=mobile_specs.[key];
var mobile2=mobile_specs.[key];
alert(mobile1 + " " +mobile2);
i++;
});
Run Code Online (Sandbox Code Playgroud)
但是上面的代码给了我一个错误:
Illegal break statement
Run Code Online (Sandbox Code Playgroud)
当 i==5 时如何打破循环?
任何帮助表示赞赏。
是否有一种很好的方法(使用JS例外除外)来停止ES6 Map对象中的forEach循环(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/forEach)
从MDN上提供的示例中-有一种方法可以停止对“栏”(跳过栏)的枚举:
function logMapElements(value, key, map) {
console.log(`m[${key}] = ${value}`);
}
new Map([['foo', 3], ['bar', {}], ['baz', undefined]]).forEach(logMapElements);
Run Code Online (Sandbox Code Playgroud)
对于建议关闭此问题的人员:是的,它类似于有关Array.prototype.forEach的问题。
但是同时又有所不同:大多数建议的答案都不适用于ES6集和地图。仅抛出异常将起作用,但我要求其他方法
javascript ×7
arrays ×1
babeljs ×1
break ×1
ecmascript-6 ×1
exception ×1
find ×1
loops ×1
node.js ×1
object ×1
performance ×1
reactjs ×1
try-catch ×1