Break D3 Each Loop Without a flag

匿名 (未验证) 提交于 2019-12-03 02:31:01

问题:

Consider the following code:

circle.each(function (d) {     //...code }); 

How can I break the loop? Is there a natural D3 way to break out of an each loop? I mean without a flag as follows:

var flag = false; circle.each(function (d) {     if (flag) return;     if (someCondition) flag = true;     //...code }); 

I've tried returning false inside the if statement but it did not work (thought that maybe this would work the same as jquery.each but I was wrong):

circle.each(function (d) {     if (someCondition) return false; //Not working     //...code }); 

回答1:

No, there is not. Take a look at the each source code https://github.com/mbostock/d3/blob/78e0a4bb81a6565bf61e3ef1b898ef8377478766/src/selection/each.js.

You may be able to throw an exception to break the loop, but unless your case is really "exceptional", using an exception is probably more confusing than helpful.



回答2:

you can do following

var flag = false; circle.some(function (d) {     if (flag) return true; }); 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!