簡體   English   中英

具有數組和原型javascript的功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM