
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 = [];//一个空数组最简单的申明方式遍历其元素的方式
//1for(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>。急求帮助啊!!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)