for双重循环中的结构分离(语法结构问题)
//增加搜索列表
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双重循环中的结构分离(语法结构问题)的更多相关文章
- java顺序结构、循环结构、选择结构
java顺序结构.选择结构.循环结构 顺序结构: 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤执组成的,它是任何一个算法都不离开的一种基本算法结构. 选择结构: 1 ...
- repeater标签双重循环的使用
在网站开发中,.NET中的repeater标签几乎是笔者首选,也是唯一一个不会生成多余元素的标签,所有样式都是自定义的,这点类似 struts中的<s:iterator/>标签. 在日常编 ...
- java08双重循环打印图形
// 九九乘法表 外层循环每执行一次,内层循环执行一遍 for (int i = 1; i <= 9; i++) { // 外层控制的是行数 for (int j = 1; j <= i; ...
- java基础08 双重循环打印图形
public class Double01 { /** * 若有3个班级各4名学员参赛, * 如何计算每个班级参赛学员的平均分? */ public static void main(String[] ...
- 精通awk系列(6):awk命令结构和awk语法结构
回到: Linux系列文章 Shell系列文章 Awk系列文章 awk命令行结构和语法结构 awk命令行结构 awk [ -- ] program-text file ... (1) awk -f p ...
- Java初认识--Java中的语法结构
Java中的语法结构(程序流程控制) Java的语法结构有四种: 1.顺序结构. 顺序结构很简单,就是按顺序执行,输出就可以了. 2.判断结构. 判断结构的一个代表性的语句是if:if语句有三种格式体 ...
- Oracle数据库 中的基础的一些语法结构
方括号里的内容为可选项 大括号是必填 1PL/SQL结构块 DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQ ...
- Java中常见方法详解合集(方法的定义及语法结构)
Java的方法定义 1.方法的定义 方法是控制对象的动作行为方式与准则,在Java中方法位于类体下又有另一种含义. 普通的方法在类中称为"实例方法",因为方法的调用需要创建对象,而 ...
- C语言中的循环结构与选择结构
1. 为什么使用循环? 重复执行某段代码 2. while(条件){ 循环体: } 当条件成立的时候就执行循环体,条件不成立,就退出循环,继续执行while后面的语句 3. for ( 初始表达式 : ...
随机推荐
- Ubuntu建立和删除用户
添加用户: sudo adduser xxx 这样的命令会在home目录下添加一个帐号 sudo useradd xxx 仅仅是添加用户, 不会在home目录添加帐号 删除用户: 在普通用户下:sud ...
- span里面插入文字
.text-box span::before{ content:attr(data-text);}
- Vue之自建管理后台(三)登录页面
在做登录页面之前,我们必须得完成路由的设定... 按照之前的设计我们路由的文件夹是src/router 官方默认的index.js,如下: import Vue from 'vue' import R ...
- 微信app支付返回-1的问题
我也是被坑就当留个纪念 前两天查了各种关于微信app支付返回-1的都是ERR_COMM 问题然后各种 验证最后还是误解 第三天去验证了一下微信开放平台发现了问题 appid 不在同一个开放平台 项目之 ...
- 2019_7_31python
练习 输入三条边长如果能构成三角形就计算周长和面积 import math a,b,c = input().split(',') a = float(a) b = float(b) c = floa ...
- CentOS7.6下安装Oracle JDK
注:本教程使用XShell ssh到CentOS服务器,并使用root用户登录,如使用其他普通用户登录,请在命令前加sudo 1).在/usr/local/目录下(看个人情况)新建文件夹java用来存 ...
- Windows中区位码转换为机内码
步骤的简化 区位码的区和位分别加上32得到国标码, 再分别加上128得到机内码 区位码的区和位分别加上160得到机内码 区位码加上A0A0H = 机内码 示例: 我 我的区位码是4650 区位码 46 ...
- 线段树区间离散化——牛客多校E
这个区间离散化把我调死了.. 总之用vector来离散化,然后叶子节点维护的是一段区间,记录下每个叶子结点的起点+长度 千万要注意下标不能弄错! #include<bits/stdc++.h&g ...
- 仿淘宝使用flex布局实现页面顶部和底部的固定布局
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- NX二次开发-将对象移动到图层UF_OBJ_set_layer
#include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <uf_layer.h&g ...