无法读取 javascript 中数组元素的 属性
Can not read property of array element in javascript
我是 javascript 的新手,我正在尝试查找由 configID
属性 创建的数组的对象。为此,我使用了 find()
方法。
JS代码:
var configurationArray = flow.get("configurationArray") || [];
var configurationId = msg.topic.split("/")[1];
var configuration = {
configID: this.configurationID,
configurationModules: this.MSGesture.payload
};
if(!configurationArray.find(x => x.configID == this, configurationId)){
configurationArray.push(this.configuration);
} else {
//to do
}
我正在使用 node-red,它给了我 flow
和 msg
。
我得到的错误:
Cannot read property 'configId' of undefined
感谢任何帮助
您可以解构 属性 并添加默认对象。
然后取 some
而不是 find
,因为您只需要支票。
最后省略this
直接取值
if (!configurationArray.some(({ configID } = {}) => configID === configurationId)) {
configurationArray.push(this.configuration);
} else {
//to do
}
如果你喜欢抽象回调,你可以在 configurationId
上进行闭包,比如
const hasId = id => ({ configID } = {}) => configID === id;
if (!configurationArray.some(hasId(configurationId)) {
configurationArray.push(this.configuration);
} else {
//to do
}
我是 javascript 的新手,我正在尝试查找由 configID
属性 创建的数组的对象。为此,我使用了 find()
方法。
JS代码:
var configurationArray = flow.get("configurationArray") || [];
var configurationId = msg.topic.split("/")[1];
var configuration = {
configID: this.configurationID,
configurationModules: this.MSGesture.payload
};
if(!configurationArray.find(x => x.configID == this, configurationId)){
configurationArray.push(this.configuration);
} else {
//to do
}
我正在使用 node-red,它给了我 flow
和 msg
。
我得到的错误:
Cannot read property 'configId' of undefined
感谢任何帮助
您可以解构 属性 并添加默认对象。
然后取 some
而不是 find
,因为您只需要支票。
最后省略this
直接取值
if (!configurationArray.some(({ configID } = {}) => configID === configurationId)) {
configurationArray.push(this.configuration);
} else {
//to do
}
如果你喜欢抽象回调,你可以在 configurationId
上进行闭包,比如
const hasId = id => ({ configID } = {}) => configID === id;
if (!configurationArray.some(hasId(configurationId)) {
configurationArray.push(this.configuration);
} else {
//to do
}