📌  相关文章
📜  如何在javascript中获取对象数组的一个值(1)

📅  最后修改于: 2023-12-03 15:38:33.613000             🧑  作者: Mango

在 JavaScript 中获取对象数组的一个值

在 JavaScript 中,我们常常需要从一个对象数组中获取某个特定对象的值。下面介绍几种获取对象数组值的方法。

方法一:使用 for 循环

可以使用一个 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() 方法

可以使用数组方法 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() 方法

可以使用数组方法 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 对象数组中获取一个值的几种方法。可以根据实际需要选择使用哪一种方法。