根据特定字段值从对象中抓取对象

时间:2021-04-30 15:08:08

标签: javascript

在我的 AngularJS 中

this.device 返回 15 对象。每个对象都包含一个 dataType 字段,并且在所有 15 个字段上都有 diff 值。我想抓取/访问仅当 dataType == "PROTOCOL" 如果我有权访问 underscore.js 我会做这样的事情,但在这个项目中,我没有。 >

this.device.protocol = _.find(this.device, {dataType: "PROTOCOL"});

什么是 JS 方法来访问它而无需执行 for 循环?

2 个答案:

答案 0 :(得分:1)

您可以使用 DKIM 并检查您想要的属性。

this.device.protocol = this.device.filter(({dataType}) => dataType == "PROTOCOL")[0];

答案 1 :(得分:1)

您可以使用 Array#find

<块引用>

find() 方法返回提供的数组中满足提供的测试函数的第一个元素的值。如果没有满足测试函数的值,则返回 undefined。

this.device.protocol = this.device.find(x => x.dataType === "PROTOCOL");