3 回答
TA贡献1847条经验 获得超7个赞
试试这样:
getValueOfKey() {
for (var obj of this.data.participants) {
if(obj.hasOwnProperty('key')){
return obj.key;
}
}
}
TA贡献1982条经验 获得超2个赞
如果要检查数组是否具有具有key属性的对象,请使用some方法。如果要获取数组中具有key属性的所有对象,请使用filter方法:
const arr = [{
"dateJoin": 1520409578,
"dateLeft": 0,
"firstName": "edh",
"internalId": 165,
"invitedBy": "edh",
"lastName": "edh",
"userId": "edh",
"key": "data"
},
{
"dateJoin": 1520409578,
"dateLeft": 0,
"firstName": "",
"internalId": 166,
"invitedBy": "edh",
"lastName": "",
"userId": "ATB"
}];
const hasKey= arr.some(s => s.key);
console.log(`hasKey: ${hasKey}`);
const objectsWithKeyProperties = arr.filter(f => f.key);
console.log(`objectsWithKeyProperties :`, objectsWithKeyProperties);
TA贡献1875条经验 获得超5个赞
您可以使用过滤器Array.prototype.filter()从与您的过滤器匹配的数组中检索所有元素。
该函数接受一个回调函数作为必须返回true以保留元素或false删除元素的参数。该函数返回一个包含与过滤器匹配的所有元素的新数组:
const result = [1, 2, 3, 4, 5].filter((num) => num > 3);
// result will look like this: [4, 5]
对于您的问题,您将检查所需的属性是否为undefined:
participants.filter((participant) => participant.key !== undefined);
此函数将返回一个新数组,其中包含所有具有名为key的属性的对象。
我们可以使用一些 Javascript 魔法来缩短事件并省略!== undefined检查,因为在一个if条件下,undefined等于 false 并且任何其他结果(除了 boolean false)等于true:
participants.filter((participant) => participant.key);
片段:
console.log([1, 2, 3, 4, 5].filter((num) => num > 3));
const participants = [
{name: "John", key: "zero"},
{name: "Prince"}
];
console.log(participants.filter((participant) => participant.key));
添加回答
举报