getBrand: function(brandId) {
for(var i=0; i<malls.length; i++) {
for(var j=0;j<malls[i].brands.length; j++){
//console.log(malls[i][brands[j]);
//console.log(malls[i].brands[j].id);
if(malls.brands[j].id==(brandId)){
console.log(malls.brands[j].id);
return malls.brands[j].id;
}
}
}
}
我需要帮助,在我的控制台中我收到此消息:TypeError:无法读取属性&#39; 0&#39;未定义的
答案 0 :(得分:1)
似乎你有一个对象数组,每个对象都有一个brands
属性,其中包含一个对象数组。您的第二个for
循环假定malls
数组本身具有brands
属性,这是不正确的。由于malls.brands
为undefined
,您会收到该错误。
变化:
if (malls.brands[j].id==(brandId)) {
为:
if (malls[i].brands[j].id==(brandId)) {
答案 1 :(得分:0)
正如@Vohuman指出的那样,我认为您应该写malls[i].brands[j]
来访问对象brands
中的数组malls[i]
,否则您将访问整个malls
brands
1}}对象数组没有getBrand: function(brandId) {
for(var i=0; i<malls.length; i++) {
for(var j=0;j<malls[i].brands.length; j++){
if(malls[i].brands[j].id==(brandId)){
console.log(malls[i].brands[j].id);
return malls[i].brands[j].id;
}
}
}
}
数组属性
{{1}}
答案 2 :(得分:0)
你应该能够做到这一点,避免大惊小怪。
for(var mall of malls) {
for(var brand of mall) {
if(brand.id == brandId) return brand.id;
}
}