JavaScript中对象数组 作业

  1 var BaiduUsers = [], WechatUsers = [];
  2 var User = function(id, name, phone, gender, age, salary) {
  3 this.id = id;
  4 this.name = name;
  5 this.phone = phone;
  6 this.gender = gender;
  7 this.age = age;
  8 this.salary = salary;
  9 };
 10 User.create = function(id, name, phone, gender, age, salary) {
 11     return new User(id, name, phone, gender, age, salary);
 12 };
 13 BaiduUsers.push(User.create(1, 'tommy', '1111','male', 18, 10000));
 14 BaiduUsers.push(User.create(2, 'jerry', '2222','male', 28, 10000));
 15 BaiduUsers.push(User.create(3, 'raobin','3333','female', 14, 1200));
 16 BaiduUsers.push(User.create(4, 'binbin','4444','male', 23, 9800));
 17 BaiduUsers.push(User.create(5, 'arthur','5555','female', 22, 10000));
 18 WechatUsers.push(User.create(1, 'tommy', '1111','male', 20, 40000));
 19 WechatUsers.push(User.create(2, 'allen', '6666','male', 34, 15800));
 20 WechatUsers.push(User.create(3, 'raobin','3333','female',16, 2300));
 21 WechatUsers.push(User.create(4, 'harvey','7777','male',30, 29800));
 22 WechatUsers.push(User.create(5, 'yuyu',  '8888','female',27, 7000));
 23 
 24 //Step1:将被收购公司的人员,手机号存在于原公司的,进行合并工资并且删除
 25 for (var i = 0; i < BaiduUsers.length; i++) {
 26 for (var y = 0; y< WechatUsers.length; y++) {
 27 if (BaiduUsers[i].phone==WechatUsers[y].phone)
 28 {
 29 WechatUsers[y].oldsalary=WechatUsers[y].salary;
 30 WechatUsers[y].salary=WechatUsers[y].salary+BaiduUsers[i].salary;
 31 BaiduUsers.splice(i,1)
 32 }
 33 }
 34 }
 35 //Step2:将被收购公司剩余人员工资乘以1.2,并且改变ID
 36 var len=WechatUsers.length;
 37 for (var i = 0; i < BaiduUsers.length; i++) {
 38 BaiduUsers[i].oldsalary =BaiduUsers[i].salary;
 39 BaiduUsers[i].salary = BaiduUsers[i].salary*1.2;
 40 BaiduUsers[i].id = WechatUsers.length+1+i;
 41 }
 42 //Step3:定义一个新对象数组,连接上述两个数组
 43 var Aftereat=WechatUsers.concat(BaiduUsers)
 44 //Step4:计算收购之后的最高工资,最低工资,平均工资,male的平均工资,female的平均工资等
 45 var arrsalary =[]
 46 for(var i=0;i<Aftereat.length;i++){
 47 arrsalary.push(Aftereat[i].salary)
 48 }
 49 
 50 
 51 var malesalary =[]
 52 var femalesalary =[]
 53 for(var i=0;i<Aftereat.length;i++){
 54 if(Aftereat[i].gender=='male'){
 55 malesalary.push(Aftereat[i].salary)
 56 }else if (Aftereat[i].gender=='female'){
 57 femalesalary.push(Aftereat[i].salary)
 58 }else{console.log("性别无法识别亲");
 59 }
 60 }
 61 
 62 
 63 var avgmale
 64 var avgfemale
 65 
 66 function avg(dataIntArr) {
 67         var avg=0;
 68         for(var i=0;i<dataIntArr.length;i++){
 69 
 70             avg+=parseFloat(dataIntArr[i]);
 71         }
 72         return avg/dataIntArr.length;
 73     }
 74     
 75     
 76 avg(arrsalary)
 77 avg(malesalary)
 78 avg(femalesalary)
 79 
 80 
 81 var topsalary=0
 82 var summarysalary=0
 83 var bottomsalary=99999999999
 84 for(var i=0;i<arrsalary.length;i++){
 85 summarysalary +=arrsalary[i];
 86 if(arrsalary[i]>topsalary)
 87 {topsalary=arrsalary[i]}
 88 if(arrsalary[i]<bottomsalary)
 89 {bottomsalary=arrsalary[i]}
 90 }
 91 
 92 var avgall=summarysalary/arrsalary.length
 93 console.log(bottomsalary);
 94 console.log(topsalary);
 95 console.log(summarysalary);
 96 console.log(avgall);
 97 console.log(avg(arrsalary));//-------全员工平均工资
 98 console.log(avg(malesalary));//-------男员工平均工资
 99 console.log(avg(femalesalary));//-------女员工平均工资
100 
101 
102 //Step5:找出收购后工资高于8000的员工姓名和电话号码,按薪水从高到低排序
103 function sortBy(filed)
104 {
105 return function(a,b){
106 return b[filed]-a[filed]
107 }
108 }
109 Aftereat.sort(sortBy("salary"))
110 
111 
112 
113 var arrmorethan8000 = new Array();
114 var UserArray = function(name, phone) {
115  this.name = name;
116  this.phone = phone;
117  };
118 User.add = function(name, phone) {
119  return new UserArray(name, phone);
120 }; 
121 
122 for (var i = 0; i < Aftereat.length; i++) {
123 if (Aftereat[i].salary>8000){
124 arrmorethan8000.push(
125 User.add(Aftereat[i].name,Aftereat[i].phone)
126 )
127 }
128 }
129 arrmorethan8000
130 
131 //Step6:找出收购前后工资涨幅最高的员工姓名和电话号码,以及涨幅的百分比
132 for (var i = 0; i < Aftereat.length; i++) {
133 Aftereat[i].salaryrise=Aftereat[i].saraly -Aftereat[i].oldsalary ;
134 console.log(Aftereat[i].oldsalary)
135 }

猜你喜欢

转载自www.cnblogs.com/qianjinyan/p/8951916.html