js判断一个对象是否在一个对象数组中

发布时间 2023-03-29 10:34:43作者: 前端朝花夕拾

有一个对象数组,如:

var arr = [{"appName":"小何","appId":"1"},{"appName":"小王","appId":"2"}]

一般来说,常见的场景有两个:

第一个是,比如鼠标点击按钮,往数组里push()一个对象,如果数组中已经存在了,那么就得提示不能添加。

第二个是,push()之后做去重处理,既对象数组去重。

 

如果数组中已经存在,就不能添加

使用includes()方法,意为存在,存在返回true,不存在返回false,重点是要结合JSON.stringify()序列化为字符串后再判断,以下是示例代码:
 1 var arr = [{"appName":"小何","appId":"1"},{"appName":"小王","appId":"2"}]
 2   
 3 var obj = {"appName":"小王","appId":"2"}
 4   
 5 //如果数组arr中不存在字符串JSON.stringify(obj),那就可以添加,反之,则不添加
 6 if(JSON.stringify(arr).includes(JSON.stringify(obj)) === false){
 7      console.log('不存在')
 8      arr.push(obj)
 9 }else{
10      console.log('已存在')
11 }