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

如何过滤对象数组,仅保留name与lastname属性?

过滤对象数组保留指定属性

你可以通过数组的map()方法,结合不同方式提取目标属性,得到仅包含指定键的新对象数组:

方法1:解构赋值(简洁写法)

const datos = [ 
  {name: 'Maiki', age:30, country:'USA', lastname: 'thomas' }, 
  {name: 'Ana', age:28, country:'BELGIUM', lastname: 'Poirier'} 
];

const filteredDatos = datos.map(({ name, lastname }) => ({ name, lastname }));
console.log(filteredDatos);

这段代码从每个对象中解构出name和lastname属性,直接返回包含这两个属性的新对象,快速得到目标数组。

方法2:手动构建新对象(直观易懂)

const datos = [ 
  {name: 'Maiki', age:30, country:'USA', lastname: 'thomas' }, 
  {name: 'Ana', age:28, country:'BELGIUM', lastname: 'Poirier'} 
];

const filteredDatos = datos.map(item => {
  return {
    name: item.name,
    lastname: item.lastname
  };
});
console.log(filteredDatos);

逐个提取需要的属性并手动创建新对象,适合对解构语法不熟悉的场景,逻辑更直白。

方法3:通用提取函数(可复用)

如果需要频繁提取不同属性,可以封装一个通用函数,提升复用性:

function pickProperties(arr, props) {
  return arr.map(item => {
    const newObj = {};
    props.forEach(prop => {
      if (item.hasOwnProperty(prop)) {
        newObj[prop] = item[prop];
      }
    });
    return newObj;
  });
}

// 使用示例
const datos = [ 
  {name: 'Maiki', age:30, country:'USA', lastname: 'thomas' }, 
  {name: 'Ana', age:28, country:'BELGIUM', lastname: 'Poirier'} 
];

const filteredDatos = pickProperties(datos, ['name', 'lastname']);
console.log(filteredDatos);

传入目标数组和需要保留的属性数组,即可灵活生成对应结果。

注意:原代码中的字符串值(如Maiki、USA)需要添加引号,否则会被识别为未定义变量,引发语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 11:09:13