<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var a = [
{
id:1,
name:'A',
},
{
id:2,
name:'B',
},
{
id:3,
name:'C',
},
{
id:4,
name:'D',
},
{
id:5,
name:'E',
},
{
id:6,
name:'F',
},
]
var filterStr = "item=> item != undefined" //这个是最普通的拉姆达表达式 代表的意思是 当前不为undefined
filterStr += "&& scrXu(item)" //这个是拼起来的表达式 "item=> item != undefined && scrXu(item)" 循环当前数组 并把你需要传的对象传到你定义的函数中 scrXu就是我们定义的函数
function scrXu(arr){ // scrXu 定义的函数 主要意思是 删选出我们传入的对象 id > 4 的对象
console.log(arr)
var flag = false
if(arr.id > 4){
flag = true
}
return flag //只能传出我们符合条件的
}
var CCC = a.filter(eval(filterStr)) // a过滤数组(eval(我们需要的表达式))
console.log(CCC) //我们最后筛选出来 [{id:5,name:'E',},{id:6,name:'F',}]
//提示:虽然 eval() 的功能非常强大,但在实际使用中用到它的情况并不多。
//eval 适合很多个条件进行筛选的功能 因为表达式可以无限的拼
//所提供的案例只适用于数组 而所定义的方法scrXu 是对象的处理方法 你若是传入的是数组 可以定义一个数组的方法
</script>
</body>
</html>
eval 拉姆达表达式
最新推荐文章于 2022-04-10 22:45:45 发布