var person,
property,
count,
wantedProperties;
person = {
firstName: "John",
lastName: "Smith",
profession: "Lawyer",
age: 31,
eyeColor: "blue",
hairColor: "blonde"
};
count = 1;
wantedProperties = [2,4];
for (prop in person) {
if (inArray(count, wantedProperties)) {
console.log(prop);
}
count++;
}
function inArray(needle, haystack) {
var length = haystack.length;
for(var i = 0; i < length; i++) {
if(haystack[i] == needle) return true;
}
return false;
}
助手功能inArray是必要的,因为wantedProperties.indexOf(计数)不工作因为wantedProperties是一个int数组。
此外,它是丑陋的,它不是零基于。您可能想要重构代码,但我希望尽可能读得清楚。
如果要记录的属性的值,改变console.log(prop);
到console.log(person[prop]);
你想要的第二和第四财产,无论它是什么性质?或者你想要姓氏和年龄? – Argee
我想要第二个和第四个属性,不管那个属性是什么。我知道例如“person.age”的方式,但我需要用for-in循环和if-else来完成 – Desislava