我有一个看起来像这样的物体
我想返回基于altnames的wsnames数组。例如,我提供一个数组["AAVEETH", "AAVEXBT"]
并返回["AAVE/ETH", "AAVE/XBT"]
。
我想通了如何使用lodash
__.filter
这样的
const wsnames = _.filter(
obj,
(item) => item.altname === 'AAVEETH' || item.altname === 'AAVEXBT'
)
但这只会返回完整的对象条目。另外,我的输入数组将不会事先知道。
首先使用将对象的值转换为值数组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] 删除。
我来说两句