gpt4 book ai didi

javascript - 从数组中的所有对象中删除键

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:54:25 26 4
gpt4 key购买 nike

我有以下对象数组:

[{id:1, value:"100", name:"dog" ...},
{id:2, value:"200", name:"cat" ...},
{id:3, value:"300", name:"fish"....},
{id:4, value:"400", name:"mouse" ...},
{id:5, value:"500", name:"snake"...}]

我想过滤对象数组并只保留两个键,idvalue 以获得如下内容:

[{id:1, value:"100"},
{id:2, value:"200"},
{id:3, value:"300"},
{id:4, value:"400"},
{id:5, value:"500"}]

目前,我正在使用 for 循环遍历对象数组,并对包含新变量的空数组执行 push()。有更简单的方法吗?

我想像 _.pluck(PetList, 'id', 'value'); 那样使用 Lodash,但是 Lodash 只提取值,而不提取键。

最佳答案

Array#filter 过滤数组中的个别项目,而不是数组中对象的某些键。您可以使用 Array#map 方法转换对象并仅保留所需的键。 map 旨在将数组的每个元素转换为新元素,将旧值“映射”为新值:

let newPetList = PetList.map(pet => ({ 
id: pet.id,
value: pet.value
}));

上面遍历数组,将当前对象存入pet。然后它从 arrow function 返回一个新对象这将是 newPetList 中相应的转换对象,只有来自 pet 的键 idvalue。结果是旧数组中的所有对象都映射到一个没有 name 键的新对象。

您还可以通过对象解构来过滤不需要的属性,如下所示:

let newPetList = petList.map(({ name, ...rest }) => rest);

这会将 name 属性绑定(bind)到 name 并将其余部分保留在 rest 中,您可以返回它以删除 name 键。

关于javascript - 从数组中的所有对象中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44348862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com