请考虑以下代码:
circle.each(function (d) {
//...code
});
如何打破循环?是否有一种自然的D3方式来突破每个循环?我的意思是没有国旗如下:
var flag = false;
circle.each(function (d) {
if (flag) return;
if (someCondition) flag = true;
//...code
});
我尝试在if语句中返回false但是它没有用(认为这可能和jquery.each
一样,但我错了):
circle.each(function (d) {
if (someCondition) return false; //Not working
//...code
});
答案 0 :(得分:5)
不,没有。请查看每个源代码https://github.com/mbostock/d3/blob/78e0a4bb81a6565bf61e3ef1b898ef8377478766/src/selection/each.js。
你可能会抛出一个异常来打破循环,但除非你的情况真的是“例外”,否则使用异常可能会让你感到困惑而不是有用。
答案 1 :(得分:1)
您可以执行以下操作
var flag = false;
circle.some(function (d) {
if (flag) return true;
});