我尝试在执行地图之前检查数组中的对象是否有密钥。
我的初始对象数组如下:
[{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函数之前检查对象数组键是否存在。这可能吗?
答案 0 :(得分:0)
Javascript具有此
的对象属性myObj.hasOwnProperty('key')
我不确定你的意思"改变结构"但您也可以只为具有您要查找的键的对象过滤数组
if (this.state.users.length > 0) {
returiningUsers = this.state.users.filter(user => user.hasOwnProperty('value'))
}