一、统计数组 arr 中值等于 item 的元素出现的次数
function count(arr, item) { var count = 0; arr.forEach(function(e){ //e为arr中的每一个元素,与item相等则count+1 e == item ? count++ : 0; }); return count; }function count(arr, item) { return arr.filter(function(a){ return (a==item); }).length}function count(arr, item) {var res;return (res = arr.toString().match(new RegExp("//b"+item+"//b","g")))?res.length:0;}function count(arr, item) { var count = 0; arr.map(function(a) { if(a === item) { count++; } }); return count; }
二、为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
function square(arr) { return arr.map(function(item,index,array){ return item*item; })}function square(arr) { //声明一个新的数组存放结果 var a = []; arr.forEach(function(e){ //将arr中的每一个元素求平方后,加入到a数组中 a.push(e*e); }); return a; }function square(arr) {//复制一个arr数组 var newarr = arr.slice(0); for (var i=0;i<newarr.length;i++){ newarr[i]= newarr[i]* newarr[i]; } return newarr;}function square(arr) { return arr.map(function(item){ return Math.pow(item, 2); })}
三、将数组 arr 中的元素作为调用函数 fn 的参数
function argsAsArray(fn, arr) { return fn.apply(this, arr); }function argsAsArray(fn, arr) { return function(para1,para2){ return para1.apply(this,para2); }(fn,arr);}
四、完成函数 createModule,调用之后满足如下要求:
1、返回一个对象
2、对象的 greeting
属性值等于 str1,name
属性值等于 str2
3、对象存在一个 sayIt
方法,该方法返回的字符串为 greeting
属性值 + ‘, ‘ +name属性值
function createModule(str1, str2) { var obj = { greeting : str1, name : str2, sayIt : function(){ //两个属性前面都需要加上this return this.greeting+", "+this.name; } }; return obj; }//使用构造函数法function createModule(str1, str2) { function Obj(){ this.greeting = str1; this.name = str2; this.sayIt = function(){ return this.greeting + ', ' + this.name; }; } return new Obj();}//构造函数与原型组合function createModule(str1, str2) { function CreateMod(){ this.greeting = str1; this.name = str2; } CreateMod.prototype.sayIt = function(){ return this.greeting + ', ' + this.name; } return new CreateMod();}
五、已知 fn 为一个预定义函数,实现函数 curryIt,调用之后满足如下条件:
1、返回一个函数 a,a 的 length 属性值为1(即显式声明 a 接收一个参数)
新闻热点
疑难解答
图片精选