filter 用来过滤满足条件的值, 这些值新组成一个新数组并返回,原数组并不改变。filter参数是个回调函数,在回调函数里面写满足的条件。
find 用来在数组中查找一个是否满足条件的值,如果找到立即返回这个值,不再继续查找。find的参数也是一个回调函数,在函数里面写满足的条件。
findIndex 和 find 类似,只是返回的是满足条件值的下标。
我们通过例子看看怎么使用的:
<html>
<head>
<style type="text/css">
</style>
</head>
<body>
<script>
var arr = ["cat", "dog", "pig", "duck", "pig"];
var result = arr.find(function(item, index){
var isPig = item === "pig" ? true : false;
return isPig;
});
//alert("result is: " + result);
var index = arr.findIndex((item) => {
return item === "pig";
});
//alert("index is: " + index);
var arr2 = ["cat", "dog", "pig1", "duck", "pig2"];
var results = arr2.filter((item, index) => {
return item.indexOf("pig") > -1;
});
//alert("results is: " + results);
</script>
</body>
</html>
打印如下: result is: pig
index is: 2
results is: pig1,pig2