检查一个或多个对象是否具有特定键

时间:2018-03-06 14:32:25

标签: javascript arrays object

我尝试在执行地图之前检查数组中的对象是否有密钥。

我的初始对象数组如下:

[{label: "", value: ""}, {label: "", value: ""}]

我有一个方法可以更改上面的数组,以便我可以将其发回。这看起来像:

["STRING","STRING"]

我尝试的方法是:

var returiningUsers = [];
if (this.state.users.length > 0) {
  returiningUsers = this.state.users.map(user => user.value)
  console.log('has users with value');
}
return returiningUsers

如果数组中有2个或更多项,则上述方法有效。当数组结构发生更改时,我收到以下错误:TypeError: _this.state.users.map is not a function

我需要在执行map函数之前检查对象数组键是否存在。这可能吗?

1 个答案:

答案 0 :(得分:0)

Javascript具有此

的对象属性
myObj.hasOwnProperty('key')

我不确定你的意思"改变结构"但您也可以只为具有您要查找的键的对象过滤数组

if (this.state.users.length > 0) {
  returiningUsers = this.state.users.filter(user => user.hasOwnProperty('value'))
}