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

JavaScript:如何提取数组对象中指定属性的所有值?

提取数组对象指定属性的最佳实践

嘿,这个需求用JavaScript的Array.prototype.map()方法就能轻松搞定,这也是处理这类数组属性提取场景的最佳实践——代码简洁、可读性强,完全贴合现代JS的写法习惯。

基础实现

假设你的数组变量名为friendRelations,直接用map遍历每个对象,返回friend_id属性即可:

const friendRelations = [
  {
    "id": 23,
    "user_id": 2,
    "friend_id": 2,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 31,
    "user_id": 2,
    "friend_id": 1,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  },
  {
    "id": 32,
    "user_id": 2,
    "friend_id": 4,
    "created_at": "2018-05-23 21:00:07",
    "updated_at": "2018-05-23 21:00:07"
  }
];

// 提取所有friend_id到变量
const friendIds = friendRelations.map(item => item.friend_id);

console.log(friendIds); // 输出: [2, 1, 4]

处理边界情况(可选)

如果你的数组里可能存在没有friend_id属性的对象,为了避免得到undefined,可以添加默认值或者过滤无效项:

// 给无friend_id的项设默认值(比如null)
const friendIdsWithDefault = friendRelations.map(item => item.friend_id ?? null);

// 或者直接过滤掉没有friend_id的项
const validFriendIds = friendRelations
  .filter(item => 'friend_id' in item)
  .map(item => item.friend_id);

为什么这是最佳实践?

  • map是数组原生方法,无需额外引入库,性能优异;
  • 代码语义清晰,一眼就能看出是“把数组里的每个元素映射成它的friend_id”;
  • 链式调用可以轻松扩展逻辑(比如上面的过滤操作),维护性强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:56:05