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

如何遍历对象并保留指定字段?JSON数据过滤问题求助

问题:过滤数组仅保留指定字段

我有一段JSON格式的data数组,想过滤数据只保留每个元素中id对象内的user字段(目标user值为'11111'),但尝试的代码没生效,相关信息如下:

原始数据

var data= [
  {
    id: {
      server: 'xxxxx',
      user: '123456',
      _serialized: '64566'
    },
    name: 'Doe',
    isCalled: false,
    isReceived: false,
    unreadCount: 1,
  },
  {
    id: {
      server: 'xxxxx',
      user: '123456',
      _serialized: '64566'
    },
    name: 'Doe',
    isCalled: false,
    isReceived: false,
    unreadCount: 1,
  },
  {
    id: {
      server: 'xxxxx',
      user: '123456',
      _serialized: '64566'
    },
    name: 'Doe',
    isCalled: false,
    isReceived: false,
    unreadCount: 1,
  }
]

尝试的无效代码

const seun = sex.map(({ id, ...rest }) => rest);

期望结果

var data= [
  {
    user: '123456'
  },
  {
    user: '123456',
  },
  {
    user: '123456',
  }
]

正确实现方式

你当前的代码有两个核心问题:

  1. 变量名错误:你用了sex但实际数组变量是data;
  2. 逻辑方向错了:你现在是去掉id保留其他字段,和需求完全相反。

要实现需求,需要用map提取每个元素里id.user,同时如果要筛选出user值为11111的条目,还要配合filter:

仅提取所有user字段(不管值)

const seun = data.map(item => ({ user: item.id.user }));

提取并筛选user值为'11111'的条目

如果要严格匹配目标user值11111,可以先过滤再提取:

const seun = data
  .filter(item => item.id.user === '11111')
  .map(item => ({ user: item.id.user }));

执行以上代码就能得到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 19:06:30