关于for、foreach、filter等的一些用法

通常我们使用得最熟悉的是for循环。

比如对于一组数字的排大小,可以使用冒泡法。

var a=[];
    for(var d=0;d<5;d++){
        var b=window.prompt("请输入数字:");
        a[d]=parseInt(b);
    }
    for(var n=0;n<a.length;n++){
        for(var i=0;i<a.length-n;i++){
            if(a[i]>a[i+1]){
            var temp=a[i+1];
            a[i+1]=a[i];
            a[i]=temp;
            }
        }
    }
    document.write(a);

目前js的新特性,foreach,遍历每一个元素,为我们提供了方便。

foreach一般用于循环数组,for in一般用于循环对象。

foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。

下面,看一个例子,利用foreach来遍历每一个元素,使其乘以10.

var a=[9,8,7,10,5,4,3];
    var b=[];
    a.forEach(function(value,i){
        b[i]=a[i]*10;
    });
    console.log(a);
    console.log(b);

上面提到for...in,一般用于遍历对象,可以看下一下例子:

var obj={
        name:"张飞",
        age:20,
        gender:"男"
    };
    console.log(obj);
    for(var k in obj){
        console.log([k,obj[k]]);
    }

关于数组,有一个map方法,不仅可以循环函数,还可以作为回调函数,将值返回到新的数组中。

var a=[9,8,7,10,5,12,3];
    var myAry= a.map(function(value){
    return value*10;     //如果不写return,新数组会有原来数组的长度,但是里面的值为undefined
        if(value>10){
            return value*10;
        }else{                //需要写else,不然小于10 的都为undefined
            return value;
        }
    });
    console.log(myAry);

filter ,过滤数组,符合条件的进行返回,与map的区别在于不符合的不return,也不会出现undefined。

var myAry1= a.filter(function(value){
    if(value>10){
        return value;
    }
    });
    console.log(myAry1);

时间: 2024-10-27 12:21:44

关于for、foreach、filter等的一些用法的相关文章

python中filter,reduce,map的用法

filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回True, 那么值就放到过滤结果队列中去如果这个函数返回 False,那么这个值就会被跳过 def pick_num(x): if x%3==0: return x r=[2,4,6,8,10] result=list(filter(pick_num,r)) reduce用法: 操作表list的内嵌函数

js map, reduce, forEach, filter的一般实现

map(映射), reduce(规约), forEach(遍历), filter(过滤),它们都是高阶函数,都是以传入不同的函数来以不同的方式操作数组元. 1> map function map(array, func) { var res = []; for (var i = 0, len = array.length; i < len; i++) { res.push(func(array[i])); } return res; } var res = map([1, 2, 3], fun

AngularJS Filter(过滤器)用法

一.在视图模板(View Template)中使用 在表达式中应用Filters (过滤器) 需要遵循格式如下: {{ expression | filter }}        即         {{ 表达式 | 过滤器 }} 例如:{{ 12 | currency }}     输出为    $12.00 在输出结果中应用Filters (过滤器) 通俗点讲就是Filter的叠加--前一filter的输出结果作为后一filter的输入数据源. 需要遵循格式如下: {{ expression

js中map,forEach,filter,reduce等方法是ECMAScript5 Array新增方法

数组在各个编程语言中的重要性不言而喻,但是在之前的JavaScript中数组(JavaScript 数组详解)虽然功能已经很强大,但操作方法并不完善,在ECMAScript5中做了适当的补充. Array.isArray(element) 这是Array对象的一个静态函数,用来判断一个对象是不是数组 var a = new Array(123); var b = new Date(); console.log(Array.isArray(a)); //true console.log(Array

数组的方法 forEach filter map slice splice

目前一些数组的实用的方法 1 arr.splice(i,n) 删除从i(索引值)开始之后的那个元素.返回值是删除的元素,改变原数组: 参数: i 索引值      n 个数 let arr = [1,2,3,4,5] console.log(arr.splice(2,2)) //[3,4] console.log(arr) // [1,2,5] 2 arr.concat() 连接两个数组 返回值为连接后的新数组,改变原数组: let arr = [1,2,3,4,5] console.log(a

Java 8 stream forEach filter anyMatch

forEach的循 someObjects.forEach(obj -> { //to do something }) 如果这个循环的目标是找到匹配某个谓词的第一个元素 Optional<SomeObject> result = someObjects.stream().filter(obj -> some_condition_met).findFirst(); 如果你只是想知道集合中是否有一个元素的条件为真,你可以使用anyMatch: boolean result = some

filter()和find()的用法区别

1.filter()用法详解 应用场景1:假定有一个对象数组A,获取数组中指定类型的对象放到B数组中. var products = [ { name: "cucumber", type: "vegetable" }, { name: "apple", type: "fruit" }, { name: "orange", type: "fruit" } ]; var filters =

jQuery中filter(),not(),split()的用法

filter(),not(): <script type="text/javascript"> $(document).ready(function() { //输出 hello alert($("p").filter(".selected").html()); //输出 How are you? alert($("p").not(".selected").html()); }); </s

c:forEach 标签中varStatus的用法

c:forEach varStatus属性 current 当前这次迭代的(集合中的)项index  当前这次迭代从 0 开始的迭代索引count  当前这次迭代从 1 开始的迭代计数first 用来表明当前这轮迭代是否为第一次迭代的标志last  用来表明当前这轮迭代是否为最后一次迭代的标志begin  属性值end   属性值step  属性值