糯米文學吧

位置:首頁 > 計算機 > java語言

Javascript中常見的邏輯題及解決方法

本文是本站小編搜索整理的關於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;

}