[英]Function with array and prototype javascript
我必須做一個程序來顯示我的“組”陣列中有多少個“男人”。 到目前為止,我得到了:
Person.prototype.myFunction= function(group){
if (this.gender = 'male') {
console.log(group);
}
else{
return Person;
}
};
var person1 = new Person('Alex', 'male', '25');
var person2 = new Person('Roberto', 'male', '70');
var person3 = new Person('Silverio', 'male', '45');
var person4 = new Person('Arturo', 'male', '24');
var person5 = new Person('Ramón', 'male', '50');
var person6 = new Person('Sol', 'female', '25');
var person7 = new Person('Sarai', 'female', '20');
var person8 = new Person('Alexa', 'female', '22');
var person9 = new Person('Betty', 'female', '24');
var person10 = new Person('Daniela', 'female', '25');
var group=[person1, person2, person3, person4, person5, person6, person7, person8, person9, person10];
我確定我已經關閉了,但是如果我沒有用的話。
使用for循環來迭代該組,如果當前人是男性,則將其添加到result
:
var group = [ new Person('Alex', 'male', '25'), new Person('Roberto', 'male', '70'), new Person('Silverio', 'male', '45'), new Person('Arturo', 'male', '24'), new Person('Ramón', 'male', '50'), new Person('Sol', 'female', '25'), new Person('Sarai', 'female', '20'), new Person('Alexa', 'female', '22'), new Person('Betty', 'female', '24'), new Person('Daniela', 'female', '25') ]; function countMales(group){ var result = 0; for(var i = 0; i < group.length; i++) { if(group[i].gender === 'male') result += 1; } return result; }; console.log(countMales(group)); function Person(name, gender, age) { this.name = name; this.gender = gender; this.age = age; }
使用reduce
函數可以累積gender === 'male'
的比賽
ES6方法:
function Person(name, gender, age) { this.name = name; this.gender = gender; this.age = age;}var person1 = new Person('Alex', 'male', '25');var person2 = new Person('Roberto', 'male', '70');var person3 = new Person('Silverio', 'male', '45');var person4 = new Person('Arturo', 'male', '24');var person5 = new Person('Ramón', 'male', '50');var person6 = new Person('Sol', 'female', '25');var person7 = new Person('Sarai', 'female', '20');var person8 = new Person('Alexa', 'female', '22');var person9 = new Person('Betty', 'female', '24');var person10 = new Person('Daniela', 'female', '25');var group=[person1, person2, person3, person4, person5, person6, person7, person8, person9, person10]; var howMany = group.reduce((a, {gender}) => (a + (gender === 'male')), 0); console.log(howMany);
使用簡單的for-of-loop
更廣泛的兼容方法
function Person(name, gender, age) { this.name = name; this.gender = gender; this.age = age;}var person1 = new Person('Alex', 'male', '25');var person2 = new Person('Roberto', 'male', '70');var person3 = new Person('Silverio', 'male', '45');var person4 = new Person('Arturo', 'male', '24');var person5 = new Person('Ramón', 'male', '50');var person6 = new Person('Sol', 'female', '25');var person7 = new Person('Sarai', 'female', '20');var person8 = new Person('Alexa', 'female', '22');var person9 = new Person('Betty', 'female', '24');var person10 = new Person('Daniela', 'female', '25');var group=[person1, person2, person3, person4, person5, person6, person7, person8, person9, person10]; var howMany = 0; for (let person of group) { if (person.gender === 'male') howMany++; } console.log(howMany);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.