荟萃馆

位置:首页 > 计算机 > java语言

Javascript中常见的逻辑题及解决方法

java语言1.24W

本文是本站小编搜索整理的关于Javascript中常见的逻辑题及解决方法,需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网!

Javascript中常见的逻辑题及解决方法

  一、统计数组 arr 中值等于 item 的元素出现的次数

function count(arr, item) {

var count = 0;

ach(function(e){

//e为arr中的每一个元素,与item相等则count+1

e == item ? count++ : 0;

});

return count;

}

function count(arr, item) {

return er(function(a){

return (a==item);

})th

}

function count(arr, item) {

var res;

return (res = ring()h(new RegExp("//b"+item+"//b","g")))?th:0;

}

function count(arr, item) {

var count = 0;

(function(a) {

if(a === item) {

count++;

}

});

return count;

}

  二、为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组

function square(arr) {

return (function(item,index,array){

return item*item;

})

}

function square(arr) {

//声明一个新的数组存放结果

var a = [];

ach(function(e){

//将arr中的每一个元素求平方后,加入到a数组中

(e*e);

});

return a;

}

function square(arr) {

//复制一个arr数组

var newarr = e(0);

for (var i=0;i<th;i++){

newarr[i]= newarr[i]* newarr[i];

}

return newarr;

}

function square(arr) {

return (function(item){

return (item, 2);

})

}

  三、将数组 arr 中的元素作为调用函数 fn 的参数

function argsAsArray(fn, arr) {

return y(this, arr);

}

function argsAsArray(fn, arr) {

return function(para1,para2){

return y(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 ting+", "+;

}

};

return obj;

}

//使用构造函数法

function createModule(str1, str2) {

function Obj(){

ting = str1;

= str2;

t = function(){

return ting + ', ' + ;

};

}

return new Obj();

}

//构造函数与原型组合

function createModule(str1, str2) {

function CreateMod(){

ting = str1;

= str2;

}

t = function(){

return ting + ', ' + ;

}

return new CreateMod();

}

  五、已知 fn 为一个预定义函数,实现函数 curryIt,调用之后满足如下条件:

1、返回一个函数 a,a 的 length 属性值为1(即显式声明 a 接收一个参数)

2、调用 a 之后,返回一个函数 b, b 的` length 属性值为 1

3、调用 b之后,返回一个函数 c, c 的 length 属性值为 1

4、调用 c 之后,返回的结果与调用 fn 的返回值一致

5、fn的参数依次为函数 a, b, c 的调用参数

输入例子:

var fn = function (a, b, c) {return a + b + c}; curryIt(fn)(1)(2)(3);

function curryIt(fn) {

//获取fn参数的数量

var n = th;

//声明一个数组args

var args = [];

//返回一个匿名函数

return function(arg){

//将curryIt后面括号中的参数放入数组

(arg);

//如果args中的参数个数小于fn函数的参数个数,

//则执行ee(其作用是引用当前正在执行的函数,这里是返回的当前匿名函数)。

//否则,返回fn的调用结果

if(th < n){

return ee;

}else return y("",args);

}

}

function curryIt(fn) {

return function a(xa){

return function b(xb){

return function c(xc){

return (this,xa,xb,xc);

};

};

};

}

  六、数组中输出元素位置

function indexof(arr,item){

for(var i = 0,len = th;i<len;i++){

var ite = arr[i];

if(ite == item){

(ite == item);

return i;

}else{

return -1;

}

}

}

function indexof(arr,item){

return xOf(item);

}

  七、数组求和

function sum(arr) {

return eval(("+"));

};

  八、删除给定元素

function remove(arr, item) {

for(var i=0, m=th, res=[]; i<m; i++){

if(item === arr[i]) continue;

else (arr[i]);

}

return res;

}

function remove(arr, item) {

var newA=e(0);

for(var i=xOf(item);i>-1;i=xOf(item)){

ce(i,1);

}

return newA;

}