[英]Function with array and prototype javascript
I got to do a program that shows how many 'men' do I have on my 'group' array. 我必须做一个程序来显示我的“组”阵列中有多少个“男人”。 I got this so far:
到目前为止,我得到了:
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];
I'm sure that I'm close, but my if it's not working. 我确定我已经关闭了,但是如果我没有用的话。
Use a for loop to iterate the group, and add one to result
if the current person is male: 使用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; }
Using the function reduce
you can accumulate the matches with gender === 'male'
使用
reduce
函数可以累积gender === 'male'
的比赛
ES6 approach: 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);
Wider compatible approach using simple for-of-loop
使用简单的
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.