filter方法

filter方法,第1张

filter方法?filter是一种在特定条件下缩小数组内容的方法,它用于在回调函数指定的条件下判断单个元素,并仅检索与条件匹配的元素,所以,本篇文章我们就来具体看看JavaScript中filter过滤器的使用方法。

我们先来看一下filter的基本语法

使用filter时,请指定数组的filter方法。

arrayfilter(callback [,that]);

对于array,需要指定预先创建的数组对象。

对于回调,可以指定数组元素的值“value”,数组元素的数字索引“index”以及存储数组元素的数组对象“arrayObj”。

对于每个数组元素,callbak返回true的元素将生成为新数组,callcak未返回true的元素将被跳过,并且不包含在新数组中。

我们下面来看具体的示例

以下是通过实际使用filter方法从数组中提取特定条件的示例

从数组中提取奇数

代码如下

var data = [1, 4, 7, 12, 21];

var result = datafilter(function(value) {

return value % 2 === 1;

});

consolelog(result);

运行结果如下

从数组中删除小于5的数字

代码如下

var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];

function isMinNum(value) {

return (value >= 5);

}

var filterNum = numbersfilter(isMinNum);

consolelog(filterNum);

运行结果如下

从字符串中提取与条件匹配的字符串

代码如下

var items = ["item1", "item2", "item3"];

var filterItems = itemsfilter(function(value) {

return value === "item2";

});

consolelog(filterItems);

乍看之下,似乎不太明白何为“数组的键”。

js数组

var arr = [];//一个空数组最简单的申明方式

遍历其元素的方式

//1

for(var i = 0,len = arrlength;i<len;i++){

  var curEle = arr[i];//获取当前索引位置的元素

}

//2

for(var index in arr){

 var curEle = arr[index];//index为遍历的索引

}

如果你想遍历一个对象/json

var obj = {name:'zhangsan',age:23,addr:'China'};

var objkeys = [];

for(objkeys[objkeyslength] in obj);

//以上将obj的键名存放到了数组objkeys 中。

//遍历输出键值对

for(var key in obj){

consolelog(key,obj);

}

<!DOCTYPE HTML>

<html>

<head>

<meta charset=UTF-8>

<title>recursion</title>

<style type="text/css">

</style>

<script type="text/javascript">

var _try_data = 

{

    "message_list": [

        {

            "viewer_list": [],

            "msg_type": " ",

            "story_id": "v1_10010_52_1_54a1",

        }, 

        {

            "viewer_list": [],

            "msg_type": " ",

            "story_id": "v1_10010_52_1_54a7",

        }, 

        {

            "viewer_list": [],

            "msg_type": " ",

            "story_id": "v1_10010_52_1_54a5",

        }

    ]

};

var try_bc_param = 

{

    "bc_list": [

        {

            "start_moment": 3,

            "story_id": "v1_10010_52_1_54a1",

            "caption": "我不知道你是谁1。",

            "duration": 4

        }, 

        {

            "start_moment": 3,

            "story_id": "v1_10010_52_1_54a5",

            "caption": "我不知道你是谁2。",

            "duration": 4

        }, 

        {

            "start_moment": 09,

            "story_id": "v1_10010_52_1_54a1",

            "caption": "我不知道你是谁3。",

            "duration": 4

        }

    ]

};

var filterData = function(a, b) 

{

    var array = [];

    for (var i = 0; i < alength; i++) 

    {

        var x = a[i]["story_id"];

        for (var j = 0; j < blength; j++) 

        {

            var bj = b[j];

            if (x == bj["story_id"]) 

            {

                var obj = 

                {

                    "start_moment": bj["start_moment"],

                    "caption": bj["caption"]

                };

                arraypush(obj);

            }

        }

    }

    arraysort(function(c, d) 

    {

        var x = parseFloat(c['start_moment'], 10), y = parseFloat(d["start_moment"], 10);

        if (x < y) 

        {

            return -1;

        } 

        else if (x > y) 

        {

            return 1;

        } 

        else 

        {

            return 0;

        }

    });

    return array;

}

var displayDiv = function(array) 

{

    for (var i = 0; i < arraylength; i++) 

    {

        var div = documentcreateElement('div');

        divinnerHTML = array[i]['caption'];

        documentbodyappendChild(div);

    }

}

onload = function() 

{

    var _try_messages = _try_data['message_list'];

    var dm = try_bc_param["bc_list"];

    var array = filterData(_try_messages, dm);

    displayDiv(array);

}

</script>

</head>

<body>

</body>

</html>

以上就是关于filter方法全部的内容,包括:filter方法、js如何取得数组的键名、使用js,比较两个json数组对象,把相等的键值取出存入<div></div>。急求帮助啊!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9729892.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存