如何过滤对象数组并仅返回一个结果而不使用数组括号

时间:2019-08-26 18:44:28

标签: javascript ecmascript-6 filter ecmascript-7

在这个可爱的星期一早晨,我可能没有喝足够的咖啡,但是我想做些简单的事情,但那并不是我想要的。

我正在过滤对象数组中的ID:

const skuVariant = skuOptions.filter(sku => sku.itemNumber === variantItemNumber);

如果存在匹配项,则返回长度为1的数组。 我有以下几行:

const skuVariantValueMap = skuVariant && skuVariant[0].varianceValueMap;

我不想不必检查数组的第一个元素,而只需从过滤调用中返回对象,而不是返回数组内部的对象。

要特别清楚,skuVariant返回以下内容:[{id: 1234}]

我希望它返回以下内容:{ id: 1234 }

使用lodash utils可以做到这一点,但这太过分了。我正在寻找香草的东西。

是否有ES7,ES6 /超干净的方式来实现这一目标?

先谢谢了。

1 个答案:

答案 0 :(得分:2)

使用Array.prototype.find代替filter。它返回满足提供的测试功能的数组中第一个元素的值。