1、本人在做一个需求时,使用了jQuery中的.each,来遍历一个数组 ,并在数组中对于符合条件的元素进行删除操作。
比如,我现在的数组如下:
var agent_list = [{'value': 'all','text': '全部'}, {'value': 5, 'text': '山东-5'}, {'value': 6, 'text': '广东-6'}];
如果,我们删除value = all的情况。写如下代码:
var cur_value = "all";
$.each(agent_list, function(index, value) {
if ( agent_list[index]["value"] == cur_value ) {
agent_list.splice(index, 1);// 删除数组index索引的元素
return;
}
});
如果,不使用return false,来正常退出each,会导致出现找不到["value"]属性的情况,也就是循环实际上没有停止,但是,
数组agent_list又实时改变了,改变之后,导致接来下的循环中,出现了问题。
2、在jQuery中的.each,要想退出循环,使用如下方法。
return false,表示正常for循环中的break;
return true,表示正常for循环中的continue;