gpt4 book ai didi

javascript - 使用数组中的键过滤对象

转载 作者:行者123 更新时间:2023-11-30 07:03:42 24 4
gpt4 key购买 nike

我有这个数组

const array = [1, 3, 6];

和这个对象

const obj = {
1: {id: 1, foo: 'a', ...},
2: {id: 2, foo: 'b', ...}
3: {id: 3, foo: 'c', ...},
4: {id: 4, foo: 'd', ...},
5: {...},
6: {...}
... // up to 1000 key/value paris
};

我想知道如何使用 array 中的键过滤 obj。一种方法是

obj.filter(elem => elem.id...);

但这会遍历 obj 中的所有元素,尽管 array 中只有三个元素。更好的方法是遍历 array,但是

array.filter(elem => elem === obj.id ...);

然后只返回数组中的元素(意思是,1, 3, 6)。我需要的是一个看起来像的数组

const result  = ['s', 'b', 'c', 'd'];

执行此操作的最佳方法是什么?

最佳答案

您可以映射数组并从对象中返回键 foo

const res = array.map(elem => obj[elem].foo);

如果对象中不存在所有元素,您可以添加过滤条件以删除未定义的值

const res = array.map(elem => obj[elem] &&obj[elem].foo).filter(Boolean);

关于javascript - 使用数组中的键过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56592927/

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