js 判断包含数组的对象中包含某个对象
近期在项目开发中做菜单配置的时候要判断一个包含对象的大数组中是否包含某一个对象,经过尝试,这里提供两种方案:
方案一,用Array的find属性
let arr=[{"id":1,"orderNum":10,"serviceName":"事件上报"}, {"id":4,"orderNum":12,"serviceName":"事件处置"} ]; let obj={"id":4,"orderNum":12,"serviceName":"事件处置"}; let newArr = []; if(arr.find(info => info.serviceName === obj.serviceName)){ console.log(已存在) uni.showToast({ icon: "none", title: "请勿重复添加应用", },1000); }else{ newArr.push(obj) }
方案二,用JSON.stringify
if(JSON.stringify(arr).indexOf(JSON.stringify(obj)) === -1){ console.log('不存在') arr.push(obj) }else{ console.log('已存在') }
推荐第一种方案,第二种方案在obj较复杂的情况下不生效