📅  最后修改于: 2023-12-03 15:38:33.613000             🧑  作者: Mango
在 JavaScript 中,我们常常需要从一个对象数组中获取某个特定对象的值。下面介绍几种获取对象数组值的方法。
可以使用一个 for 循环遍历整个对象数组,找到目标对象,然后返回相应的值。
let arr = [
{ name: "apple", price: 1.99 },
{ name: "banana", price: 0.99 },
{ name: "orange", price: 1.49 }
];
function getPrice(arr, name) {
for(let i=0; i<arr.length; i++) {
if(arr[i].name === name) {
return arr[i].price;
}
}
return "Item not found";
}
console.log(getPrice(arr, "banana")); // 0.99
console.log(getPrice(arr, "watermelon")); // Item not found
可以使用数组方法 Array.prototype.find(),该方法返回一个符合给定条件的第一个数组元素。如果找不到则返回 undefined。
let arr = [
{ name: "apple", price: 1.99 },
{ name: "banana", price: 0.99 },
{ name: "orange", price: 1.49 }
];
function getPrice(arr, name) {
let item = arr.find(function(obj) {
return obj.name === name;
});
return item ? item.price : "Item not found";
}
console.log(getPrice(arr, "banana")); // 0.99
console.log(getPrice(arr, "watermelon")); // Item not found
可以使用数组方法 Array.prototype.filter(),该方法返回一个符合给定条件的数组元素的新数组。如果找不到,则返回空数组。
let arr = [
{ name: "apple", price: 1.99 },
{ name: "banana", price: 0.99 },
{ name: "orange", price: 1.49 }
];
function getPrice(arr, name) {
let item = arr.filter(function(obj) {
return obj.name === name;
});
return item.length > 0 ? item[0].price : "Item not found";
}
console.log(getPrice(arr, "banana")); // 0.99
console.log(getPrice(arr, "watermelon")); // Item not found
以上就是从 JavaScript 对象数组中获取一个值的几种方法。可以根据实际需要选择使用哪一种方法。