//增加搜索列表
function addSearchList(){
$.get("/mall/h5_get_search_list.html","",function(d){
// alert(d);
var data=eval('('+d+')');
var li;
// alert($mallDel.length);
// alert(data.malls.length);
var content='';
for(var i=0;i<data.malls.length;i++){
var isExist=true;
for(var j=0;j<$mallDel.length;j++){
li = data.malls[i];
if(data.malls[i].mid==$mallDel.eq(j).attr('data-mid')){
isExist=false;
break;
}
} if(isExist){
content+="<div class='m-i flex' data-mid='"+li['mid']+"'><i class='fxicon icon-add'></i><span>"+li['name']+"</span></div>";
$mallAddedList.html(content);
} } }); }

先上代码

我要做的是一个,如果顶部的区域有已知的搜索列表(根据data-mid属性标识),那么底部就不要再显示同样的列表

刚开始思路有,是双循环,如果在内循环中直接进行了内容插入

这样会导致执行次数变多,有多个重复的列表

这里就是双循环的陷阱,无论是怎样的语法结构,只要在内循环中完成内容的处理,那么就是wrong

所以这里,将业务的逻辑分离在外循环和内循环中是最为可靠的处理方式

外循环中声明了一个标识,isExist布尔变量为true

内循环中进行了一个data-mid属性值是否相同的判断,根据底部区域和顶部的区域的列表

如果相同,则isExist为false,添加内容的代码在外循环中,因此当data-mid属性值相同时,isExist为false,底部区域不会添加该标签

当然以上代码是以底部区域为主的,也即是底部区域的列表项肯定包含顶部区域,底部区域肯定大于顶部区域的列表项

所以底部区域的循环在外层

content变量要赋一个初始值,='',不然会显示undefined

这里不能用jquery的append,不然会插入多个相同的内容,所以这里用字符串连接+jquery的html方法完成这样的操作

for双重循环中的结构分离(语法结构问题)的更多相关文章

  1. java顺序结构、循环结构、选择结构

    java顺序结构.选择结构.循环结构 顺序结构: 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤执组成的,它是任何一个算法都不离开的一种基本算法结构. 选择结构: 1 ...

  2. repeater标签双重循环的使用

    在网站开发中,.NET中的repeater标签几乎是笔者首选,也是唯一一个不会生成多余元素的标签,所有样式都是自定义的,这点类似 struts中的<s:iterator/>标签. 在日常编 ...

  3. java08双重循环打印图形

    // 九九乘法表 外层循环每执行一次,内层循环执行一遍 for (int i = 1; i <= 9; i++) { // 外层控制的是行数 for (int j = 1; j <= i; ...

  4. java基础08 双重循环打印图形

    public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...

  5. 精通awk系列(6):awk命令结构和awk语法结构

    回到: Linux系列文章 Shell系列文章 Awk系列文章 awk命令行结构和语法结构 awk命令行结构 awk [ -- ] program-text file ... (1) awk -f p ...

  6. Java初认识--Java中的语法结构

    Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...

  7. Oracle数据库 中的基础的一些语法结构

    方括号里的内容为可选项 大括号是必填 1PL/SQL结构块 DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQ ...

  8. Java中常见方法详解合集(方法的定义及语法结构)

    Java的方法定义 1.方法的定义 方法是控制对象的动作行为方式与准则,在Java中方法位于类体下又有另一种含义. 普通的方法在类中称为"实例方法",因为方法的调用需要创建对象,而 ...

  9. C语言中的循环结构与选择结构

    1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...

随机推荐

  1. OAuth2.0实例说明

    OAuth2.0 详细实列+Word文档清晰说明 实例下载地址:https://files.cnblogs.com/files/liyanbofly/OAuth2.0%E5%AE%9E%E4%BE%8 ...

  2. 笔记45 Hibernate快速入门(二)

    Hibernate O/R 映射 一.多对一 一个Product对应一个Category,一个Category对应多个Product,所以Product和Category是多对一的关系.使用hiber ...

  3. lib 和 dll 的区别、生成以及使用详解 ~~包含示例代码~~(转)

    原文章地址:https://www.cnblogs.com/TenosDoIt/p/3203137.html#c 首先介绍一下静态库(静态链接库).动态库(动态链接库)的概念,首先两者都是代码共享的方 ...

  4. 转: 工作中用的C++库

    转:https://www.mhftz.com/archives/42.html 个人学习C/C++的开源代码: 0.STL 1.osmium 2.leveldb 3.glog 4.redis 个人使 ...

  5. Unity 调用android

    { https://www.bilibili.com/video/av49002527 }

  6. 概率期望+闭包+bitset优化——hdu5036

    我们首先得到:     暴力打开这个箱子,能够开那些箱子.这个可以用bitset来进行状态压缩. 用闭包传递来解决这一步     然后,对于每个箱子,我们考虑有多少种方法,使:暴力打开某些箱子,同时能 ...

  7. 在vue中使用handsontable

    1.使用npm安装 npm install handsontable @handsontable/vue 2.定义结构 <hot-table :settings="hotSetting ...

  8. delphi 获取所有窗口标题

    unit Unit1; interface usesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

  9. NOIp2018集训test-9-23

    这个NOI模拟题怕是比你们的NOIp模拟题要简单哦.. 友好的生物 应该是一道简单题,但是机房只有辉神一个人想到正解似乎. 被我kd-tree水过去了(这不是kd-tree的裸题吗???(不是)) / ...

  10. NX二次开发-UFUN已知两个向量方向求夹角角度UF_VEC3_angle_between

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_vec.h> #include <uf_ ...