我在一个我不太懂的小程序上遇到这个问题(我对节点红有点新手),代码是
var profile = msg.user.profile;
var cart = profile.cart = profile.cart || [];
var search = profile.search;
var id = msg.payload.substring(8);
for (let item of search){
if ( item.id != id) continue;
cart.push(item);
msg.payload = item;
}
TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
行上的完整错误为for (let item of search){
。
我做了一些研究,发现这个错误通常是由于某些未定义的东西,但我真的不明白如何解决这个问题。
答案 0 :(得分:1)
我发现你正在使用 let 语法; 让语法仅适用于ecmascript 2015 up(javascript版本),所以基本上你需要做的就是像这样重写你的代码
var profile = msg.user.profile;
var cart = profile.cart = profile.cart || [];
var search = profile.search;
var id = msg.payload.substring(8);
// assuming that profile.search is an array
for (var i = 0 ; i < search.length ; i++){
var item = search[i];
if ( item.id != id) continue;
cart.push(item);
msg.payload = item;
}
// if it is an object, then you could loop through its props
for (var prop in search ){
var item = search[prop];
if ( item.id != id) continue;
cart.push(item);
msg.payload = item;
}