javascript - 如何从javascript中的对象数组映射多个属性
问题描述
我有一个 Object 数组,如下所示:
var obj = [
{a: 1, b: 5, c: 9},
{a: 2, b: 6, c: 10},
{a: 3, b: 7, c: 11},
{a: 4, b: 8, c: 12}
];
我知道如何使用Array.map()
这样的方法获取单个对象。
var result = obj.map(x=>x.a)
这会给我以下结果
[1, 2, 3, 4]
但我想要如下结果:
[
{a: 1, b: 5},
{a: 2, b: 6},
{a: 3, b: 7},
{a: 4, b: 8}
]
简而言之,从对象数组中我只想选择几个字段(多个)
怎么做 ?
解决方案
您可以使用.map()
对象解构:
let data = [
{a:1,b:5,c:9}, {a:2,b:6,c:10},
{a:3,b:7,c:11}, {a:4,b:8,c:12}
];
let result = data.map(({ a, b }) => ({a, b}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- reactjs - 从那时起反应本机获取响应并分配给变量
- azure-signalr - Azure SignalR 超时问题
- oracle-cloud-infrastructure - 是否有可能检查用户是否在 OCI 中获得了策略?
- r - 如何在R中填写NA以获得准相同的行?
- powershell - 将 ADObject 数据导出为 CSV
- go - 是否可以将可变参数 args 与标志包使用结合起来?
- reactjs - Typesafe反应装饰器无法识别传递函数的ReturnType
- python-3.x - 在 Conda 环境中成功安装包后的 ImportError
- ruby-on-rails - SyntaxError:获取rails json时JSON中位置1的意外标记o
- signals - 洗牌后重新排列信号频谱