Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查数组是否包含特定对象_Javascript_Arrays_Javascript Objects_Indexof - Fatal编程技术网

Javascript 如何检查数组是否包含特定对象

Javascript 如何检查数组是否包含特定对象,javascript,arrays,javascript-objects,indexof,Javascript,Arrays,Javascript Objects,Indexof,我试图检查对象数组是否包含特定对象或具有特定属性的对象 var mainArray=[ {姓名:“Yahya”,年龄:“29”}, {姓名:“艾哈迈德”,年龄:“19”}, {姓名:“穆罕默德”,年龄:“10”}, {姓名:“阿里”,年龄:“32”}, {姓名:“莫娜”,年龄:“25”}, {姓名:“Shady”,年龄:“62”}, {姓名:“Reem”,年龄:“11”}, {姓名:“Marwa”,年龄:“52”} ] var myObject={姓名:“Yahya”,年龄:“29”}; 函数

我试图检查对象数组是否包含特定对象或具有特定属性的对象

var mainArray=[
{姓名:“Yahya”,年龄:“29”},
{姓名:“艾哈迈德”,年龄:“19”},
{姓名:“穆罕默德”,年龄:“10”},
{姓名:“阿里”,年龄:“32”},
{姓名:“莫娜”,年龄:“25”},
{姓名:“Shady”,年龄:“62”},
{姓名:“Reem”,年龄:“11”},
{姓名:“Marwa”,年龄:“52”}
]
var myObject={姓名:“Yahya”,年龄:“29”};
函数检查(){
if(mainArray.indexOf(myObject)>-1){
console.log(“true”)
返回true;
}否则{
console.log('false'))
返回false;
}
};

检查
如果要检查对象数组是否包含该特定对象,则可以使用
数组。有些

var mainArray=[{
名称:“叶海亚”,
年龄:“29”
},
{
姓名:“艾哈迈德”,
年龄:“19”
},
{
姓名:“穆罕默德”,
年龄:“10”
},
{
姓名:“阿里”,
年龄:“32”
},
{
姓名:“莫娜”,
年龄:“25”
},
{
名称:“阴凉”,
年龄:“62”
},
{
名称:“Reem”,
年龄:“11”
},
{
姓名:“Marwa”,
年龄:“52”
}
]
变量myObject={
名称:“叶海亚”,
年龄:“29”
};
设ans=mainArray.some(函数(arrVal){
返回myObject.name==arrVal.name;
});

console.log(ans)
您可以检查该数组的某些元素是否与字符串化时要检查的对象相同,如下所示:

mainArray.some(e => JSON.stringify(e) === JSON.stringify(myObject))
函数检查(){
log(mainArray.some(e=>JSON.stringify(e)==JSON.stringify(myObject)))
};
让main数组=[{
名称:“叶海亚”,
年龄:“29”
},
{
姓名:“艾哈迈德”,
年龄:“19”
},
{
姓名:“穆罕默德”,
年龄:“10”
},
{
姓名:“阿里”,
年龄:“32”
},
{
姓名:“莫娜”,
年龄:“25”
},
{
名称:“阴凉”,
年龄:“62”
},
{
名称:“Reem”,
年龄:“11”
},
{
姓名:“Marwa”,
年龄:“52”
}
]
设myObject={
名称:“叶海亚”,
年龄:“29”
};

检查myObject
索引将尝试使用基本比较机制在集合中查找对象。尝试运行:
{name:“Yahya”,age:“29”}=={name:“Yahya”,age:“29”}
在javascript控制台中,您将得到false,因为这是两个不同的对象,使用相同的字符串文本创建

我相信你应该阅读更多关于OOP中对象的信息

要使用提供的测试器函数检查集合是否包含元素,请使用Array.prototype.some()
var mainArray=[
{姓名:“Yahya”,年龄:“29”},
{姓名:“艾哈迈德”,年龄:“19”},
{姓名:“穆罕默德”,年龄:“10”},
{姓名:“阿里”,年龄:“32”},
{姓名:“莫娜”,年龄:“25”},
{姓名:“Shady”,年龄:“62”},
{姓名:“Reem”,年龄:“11”},
{姓名:“Marwa”,年龄:“52”}
];
var myObject={姓名:“Yahya”,年龄:“29”};
功能检查(对象){
返回mainArray.some(函数(元素){
返回element.name==object.name&&element.age==object.age;
})
}

console.log(检查(myObject))
有一个由
findIndex
给出的
Array
方法,我们可以做如下简单的事情

var mainArray=[
{姓名:“Yahya”,年龄:“29”},
{姓名:“艾哈迈德”,年龄:“19”},
{姓名:“穆罕默德”,年龄:“10”},
{姓名:“阿里”,年龄:“32”},
{姓名:“莫娜”,年龄:“25”},
{姓名:“Shady”,年龄:“62”},
{姓名:“Reem”,年龄:“11”},
{姓名:“Marwa”,年龄:“52”}
]
var myObject={姓名:“Yahya”,年龄:“29”};
函数检查(){
if(mainArray.findIndex(obj=>obj.name==myObject.name&&obj.age==myObject.age)>-1){
console.log(“true”)
返回true;
}否则{
console.log('false'))
返回false;
}
};
检查