根据数组从对象返回值数组

用户名

我有一个看起来像这样的物体

我想返回基于altnames的wsnames数组。例如,我提供一个数组["AAVEETH", "AAVEXBT"]并返回["AAVE/ETH", "AAVE/XBT"]

我想通了如何使用lodash __.filter这样的

 const wsnames = _.filter(
    obj,
    (item) => item.altname === 'AAVEETH' || item.altname === 'AAVEXBT'
  )

但这只会返回完整的对象条目。另外,我的输入数组将不会事先知道。

艾米尔(Emiel Zuurbier)

首先使用将对象的值转换为值数组Object.values()现在,您可以使用数组方法,例如filter过滤掉不需要的值并map创建仅包含wsname属性的新数组

const wsNames = Object.values(obj)
  .filter(({ altname }) => altname === 'AAVEETH' || altname === 'AAVEXBT')
  .map(({ wsname }) => wsname);

现在,您可以将此逻辑转换为函数,在其中传递要从中进行过滤的对象以及要从altname中获取wsname数组

const getWsNames = (obj, altNames) => Object.values(obj)
  .filter(({ altname }) => altNames.includes(altname))
  .map(({ wsname }) => wsname);

const wsNames = getWsNames(obj, ['AAVEETH', 'AAVEXBT']);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章