最近做项目的时候,经常会有这样一个需求,检测数组里面是否存在,存在则返回true,不存在则返回false。于是就会编写一段循环来检测,这个也是很常见的遍历行为,按着顺序去查找是否有对应的匹配值。
<script type="text/javascript">
var carlist = [{vin:"ls11",carname:"aaa"},{vin:"ls22",carname:"bbb"},{vin:"ls33",carname:"ccc"}];
var vin = "ls22";
var flag = false;
for (var i = 0; i < carlist.length; i++) {
var item = carlist[i];
if(item.vin == vin){
flag = true;
break;
}
}
if(flag)
{
console.log("有值");
}
</script>
这样写也很符合需求,但是发现js 还有一个find方法可以更少代码来遍历操作。稍微修改一下代码。
var carlist = [{vin:"ls11",carname:"aaa"},{vin:"ls22",carname:"bbb"},{vin:"ls33",carname:"ccc"}];
var vin = "ls22";
var result = carlist.find((item)=>{
return item.vin == vin;
})
console.log(result)
当查询到的时候会返回对应条目。否则会返回undefined。这样看起来可以写少很多代码,也满足了需求。
还算一个比较方便的方法。