JavaScript 如何检查数组是否包含具有给定值的属性对象
有时候,在JavaScript中处理对象数组时,我们需要确定数组中是否存在具有特定属性值的对象。这在筛选或搜索数组中特定对象时非常有用。以下是确定数组是否包含具有属性对象的常用方法:
- 使用array.some()方法
- 使用array.find()方法
- 使用for循环
方法一:使用Array.some()方法: JavaScript的array.some()方法检查数组中是否至少有一个元素满足参数方法所检查的条件。在这种方法中,我们使用some()方法在食物菜单数组中查找一个食物项目,如果被搜索的食物项目存在于食物菜单数组中,则返回true,否则返回false。
语法
array.some((element, index, array) => {
// Code to test if element matches the condition
});
示例: 在此我们使用了上述解释的方法。
Javascript
const foodmenu = [
{ Item: "Masala Dosa", price: 60 },
{ Item: "Ice-cream", price: 35 },
{ Item: "Idli", price: 30 },
];
const searchItem = "buttermilk";
const containsObject =
foodmenu.some((obj) => obj.Item === searchItem);
if (containsObject) {
console.log
(`'{searchItem} is present in our Foodmenu'`);
} else {
console.log
(` '{searchItem}' is not present in our Foodmenu`);
};
输出:
'buttermilk' is not present in our Foodmenu
方法二:使用 Array.find() 方法: Array.find() 方法返回数组中满足提供的测试函数的第一个元素。如果没有元素满足函数,则返回 undefined。
语法:
array.find((element, index, array) => {
// Code to test if element matches the condition
});
示例: 下面是我们如何使用 find() 来确定一个数组是否包含一个属性等于给定值的对象:
Javascript
const foodmenu = [
{ Item: "Masala Dosa", Price: 60 },
{ Item: "Ice-cream", Price: 35 },
{ Item: "Idli", Price: 30 },
];
const searchItem = "Idli";
const foundObject =
foodmenu.find((obj) => obj.Item === searchItem);
if (foundObject) {
console.log
(`'{searchItem}' is present in our Foodmmenu`);
} else {
console.log
(`'{searchItem}' is not present in our Foodmenu`);
};
输出:
'Idli' is present in our Foodmmenu
方法三:使用for循环 : for循环是重复执行一组指令,直到某个条件计算为假为止。 **** 在这种方法中,我们使用for循环来确定数组中的一个对象。
语法:
for (let i = 0; i < array.length; i++) {
if (array[i].attribute === searchValue) {
// Code to handle matching element
}
}
例子: 在这个例子中,我们使用了上述的方法。
JavaScript
const foodmenu = [
{ Item: "Masala-Dosa", Price: 60 },
{ Item: "Ice-cream", Price: 35 },
{ Item: "Idli", Price: 30 },
];
const searchItem = "Masala-Dosa";
let found = false;
for (let i = 0; i < foodmenu.length; i++) {
if (foodmenu[i].Item === searchItem) {
found = true;
break;
}
}
if (found) {
console.log
(`'{searchItem}' is present in our Foodmenu`);
} else {
console.log
(`'{searchItem}' is not present in our Foodmenu`);
};
输出:
'Masala-Dosa' is present in our Foodmenu