`
Baby真卑鄙
  • 浏览: 9711 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

用简洁的方法替换for循环

 
阅读更多

1.each_.each(list, iteratee, [context]) Alias: forEach 

for(var i=0;i<cart_list.length;i++){
     var cart=cart_list[j];
}

 替换后:

cart_list.forEach(function(cart){
}

 {}里面的东西已省略

2.find_.find(list, predicate, [context]) Alias: detect 

例如:判断数组item_list里面每个商品信息的数量值,并且放到新的数组cart_list里面;

for(var m=0;m<item_list.length;m++) {           
        if(cart_list.length==0){                        
           item_list[m].count=1;   
           cart_list.push(item_list[m]);              
        }  
        else {  
              for(var n=0;n<cart_list.length;n++) {                   
                if(cart_list[n].barcode==item_list[m].barcode){                        
                     cart_list[n].count++;   
                      
                     break;                        
                 }  
                 else if(n==cart_list.length-1){  
                         item_list[m].count=1;    
                         cart_list.push(item_list[m]);  
                         break;  
                 }  
        }  
}         

 替换后:

 item_list.find(function(item){          
        if(cart_list.length==0){                      
          item.count=1; 
           cart_list.push(item);           
        }
        else {            
                cart_list.find(function(cart,index){       
                                   if(cart.barcode==item.barcode){                      
                                      cart.count++;   
                                   }
                                   else if(index==cart_list.length-1){
                                            item.count=1; 
                                            cart_list.push(item);
                                   }
               })
        }                  
})  

 3.each与find各自的特点以及它们的区别

each:遍历list中的所有元素,按顺序用每个元素当做参数调用 iteratee 函数。如果传递了context参数,则把iteratee绑定到context对象上。每次调用iteratee都会传递三个参数:(element, index, list)。如果list是个JavaScript对象,iteratee的参数是 (value, key, list))。返回list以方便链式调用。

find:list中逐项查找,返回第一个通过predicate迭代函数真值检测的元素值,如果没有元素通过检测则返回undefined。如果找到匹配的元素,函数将立即返回,不会遍历整个list。

区别:each要避免传递带有一个数值类型length属性的对象,确保每个循环不被破坏。但是可以用find来解决这个问题。

 

分享到:
评论

相关推荐

    python 用lambda函数替换for循环的方法

    常用的方法肯定是使用for循环,对每一行进行处理。 import pandas as pd list = [98,88,37,68,86,33] df = pd.DataFrame(list, columns=['score']) # convert list to dataframe df['level'] = '' # add a column ...

    tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法

    在TensorFlow中,为了提高计算效率和模型的执行速度,我们常常需要将传统的for循环替换为矩阵运算。这里,我们将详细探讨如何使用`tf.tile`和矩阵运算来优化代码,以替代for循环。 首先,让我们回顾一下给定的代码...

    java使用poi操作.doc word模板替换,循环插入表格

    一旦找到,我们就可以用新的内容替换它们。例如,你可以定义一个函数,接受模板文件路径、占位符和替换内容作为参数,然后调用这个函数来实现替换: ```java public void replacePlaceholder(String filePath, ...

    Java中使用增强for循环的实例方法

    Java中使用增强for循环的实例方法 Java语言中提供了多种循环语句,包括for循环、while循环、do-while循环等,其中增强for循环(也称为foreach循环)是一种特殊的for循环,用于遍历数组或集合中的元素。在本文中,...

    Apache poi 根据word模板生成word报表 替换 循环列表 图片

    XWPFDocument类的getParagraphs()方法可以获取文档中的所有段落,接着遍历这些段落,检查其文本内容并进行替换。 2. **循环列表**:要实现循环列表,你需要遍历一个数据集合(如ArrayList或LinkedList),并在每次...

    利用for循环把遍历数组中的元素依次获取出来 数组笔记及基本知识点.pdf

    最常用的遍历数组的方法就是for循环。以下是一个示例,展示如何遍历数组并将每个元素打印到控制台: ```javascript var arr = ['blue', 2, true, 4, 5, 6, 7]; for (var i = 0; i ; i++) { console.log(arr[i]); }...

    Shell两种for循环对应实现方法解析

    2. 使用for循环遍历文件夹名称(由$foldername变量表示),用`sed`命令逐次替换`fstab`中的`wwwdata1`,将它替换为当前的文件夹名称,从而实现一一对应挂载。 ```bash for i in $every;do # 对硬盘进行分区和格式...

    都9102年了,你还用for循环操作集合吗

    例如,我们可以用lambda替换`forEach`方法中的匿名内部类: ```java names.forEach(name -&gt; System.out.println(name)); ``` 现在,我们转向核心主题——`Stream API`。Stream API允许我们对集合进行一系列的声明...

    Python基础课程-for循环

    这个例子演示了如何用`for`循环配合字符串的`replace()`方法来去除文本中的特定字符,如标点符号。这里我们移除了 `'-'`、`,`、`.`、`;`、`\n`(换行符)、`"` 和 `'` 这些字符,并将它们替换为空格,从而清理文本...

    使用java的for循环打印一个等腰三角形

    下面我们将详细讲解如何用Java的for循环实现这个功能: 首先,我们需要确定三角形的高度。假设高度为n,那么将打印n行,第一行有一个星号,第二行有两个星号,以此类推,直到第n行有n个星号。然后从n行开始倒序打印...

    数据类型详解、format、replace、for循环

    - 替换:使用replace方法替换字符串中的字符或子串。 - 大小写转换:upper()方法将字符串转换为大写,lower()方法将字符串转换为小写。 - 检查开头或结尾:startswith和endswith方法用于检查字符串是否以指定字符或...

    shell for循环、循环变量值付给其他shell脚本的方法

    在Shell编程中,for循环是一种常用的控制结构,用于重复执行一段代码直到满足特定条件为止。本文将详细介绍如何在Shell中使用for循环,并探讨如何将循环变量的值传递给其他Shell脚本。 首先,让我们看下Shell中for...

    for循环奇数求和计算_奇数求和_

    本文将深入探讨如何使用for循环来实现奇数求和的功能,这是一项适合初学者上手的练习。 首先,我们需要理解for循环的基本结构。for循环是一种迭代控制结构,它允许我们在满足特定条件时重复执行一段代码。其基本...

    14matlab将变量替换为数字.zip

    9. **循环中的变量替换**:在循环中,每次迭代可能都会改变变量的值,如`for i = 1:10, var = i; end;`。 10. **数组函数应用**:MATLAB的数组函数如`arrayfun`可以将一个函数应用于数组的每个元素,实现批量替换。...

    javascript循环数组有什么方法_javascript循环数组有哪些方法.docx

    ### JavaScript 循环数组的方法详解 #### 一、基本循环遍历数组 **问题描述**:需要简单有效地访问数组中的所有元素。 **解决方案**:使用 `for` 循环是最常见的遍历数组的方式。数组的索引从0开始,通过 `length`...

    java替换word中的变量

    这两个库都提供了操作Word文档内容的方法,包括替换文本。 对于.doc文件,我们通常使用HWPFDocument和Range类。以下是一个简单的例子: ```java import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi....

    C++中string替换所有指定字符串的方法

    可以使用while循环或for循环来实现字符串的替换。例如,可以使用while循环来搜索字符串中所有匹配的子串,并将其替换为新的字符串。 知识点3:replace_all函数的实现 replace_all函数将字符串中所有指定的字符串...

Global site tag (gtag.js) - Google Analytics