You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

遍历对象数组提取唯一age值的for循环/forEach实现示例

提取数组中唯一age值的实现方案

嘿,这就给你安排两种符合要求的实现方法——分别用for循环和forEach遍历数组,提取出唯一的age值:

使用for循环实现

核心思路是:先初始化一个空数组用来存储唯一的age值,然后遍历原数组的每一项,每次检查当前元素的age是否已经存在于结果数组中,不存在就把它推进去。

let array1 = [ { age: 20, name: "bob" }, { age: 24, name: "Mike" }, { age: 20, name: "Penny" }, { age: 24, name: "Jeff" }, { age: 25, name: "Mary" } ];
const uniqueAges = [];

for (let i = 0; i < array1.length; i++) {
  const currentAge = array1[i].age;
  // 检查当前age是否未在结果数组中
  if (!uniqueAges.includes(currentAge)) {
    uniqueAges.push(currentAge);
  }
}

console.log(uniqueAges); // 输出: [20, 24, 25]

使用forEach遍历实现

逻辑和for循环一致,只是用更简洁的forEach方法来遍历数组:

let array1 = [ { age: 20, name: "bob" }, { age: 24, name: "Mike" }, { age: 20, name: "Penny" }, { age: 24, name: "Jeff" }, { age: 25, name: "Mary" } ];
const uniqueAges = [];

array1.forEach(item => {
  const currentAge = item.age;
  if (!uniqueAges.includes(currentAge)) {
    uniqueAges.push(currentAge);
  }
});

console.log(uniqueAges); // 输出: [20, 24, 25]

额外优化小提示

如果你的数组数据量很大,Array.includes()每次都是线性查找,性能会有点跟不上。这时候可以搭配Set来记录已存在的age,它的查找效率是O(1)的,能明显提升性能:

let array1 = [ { age: 20, name: "bob" }, { age: 24, name: "Mike" }, { age: 20, name: "Penny" }, { age: 24, name: "Jeff" }, { age: 25, name: "Mary" } ];
const uniqueAges = [];
const ageSet = new Set();

array1.forEach(item => {
  if (!ageSet.has(item.age)) {
    ageSet.add(item.age);
    uniqueAges.push(item.age);
  }
});

console.log(uniqueAges); // 输出: [20, 24, 25]

内容的提问来源于stack exchange,提问作者Gabe Perry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:48:56