Seb*_*lia 0 javascript oop loops for-loop object
我目前正在尝试用好奇的for循环替换for循环,但没有成功.我总是得到undefined
.这甚至可以用javascript对象吗?
我循环的示例对象:
var el = {
1: {type: "fish", commonName: "clownfish", scientificName: "sdasd", gender: "m", price: 1.99},
2: {type: "fish", commonName: "dragonfish", scientificName: "dada", gender: "f", price: 2.99}
};
Run Code Online (Sandbox Code Playgroud)
我的工作方式:
for (var element in el) {
if (el[element].type === type && el.hasOwnProperty(element)) {
elementNum++;
}
}
Run Code Online (Sandbox Code Playgroud)
简单的for循环方法总能让我Cannot read property 'type' of undefined
:
for(var i = 0, x = Object.keys(el).length; i < x; i++) {
if (el[i].type === type && el.hasOwnProperty(i)) {
elementNum++;
}
}
Run Code Online (Sandbox Code Playgroud)
0
当你在整个对象中的第一个键时,你就开始循环了1
.
var el = {
1: {
type: "fish",
commonName: "clownfish",
scientificName: "sdasd",
gender: "m",
price: 1.99
},
2: {
type: "fish",
commonName: "dragonfish",
scientificName: "dada",
gender: "f",
price: 2.99
}
};
var keyLength = Object.keys(el).length;
// I've simplified the for loop
for (var i = 1; i <= keyLength; i++) {
console.log(el[i].commonName);
}
Run Code Online (Sandbox Code Playgroud)