map函数

 

loop

const add=function (x,y){
    return x+y;
}

const sub=function _sub(x,y){
    return x-y;
}

console.log(add(5,7))
console.log(sub(5,8.3))

const sum=function _sum(n){
    __sum=0
    while(n--){
        __sum+=n+1;
        // n--;
    }
    return __sum;
}

console.log(sum(10))

 

recursion

var sum=function _sum(n){
    let result=0;
    if(n==1) return n;
    return result+=n+_sum(--n)
}

console.log(sum(10))

 

九九乘法表

for(i=1;i<10;i++){
    line=''
    for(j=1;j<10;j++){
        line+=`${i}*${j}=${i*j}\t`
        if(i==j)
            console.log(line)
    }
}

 

function

 

console.log(v(8,7))

function v(x,y){
    return x+y;
}


console.log(b)
var b=function _b(x,y){
    return x-y;
}

function show() {
    console.log('show')
}

console.log(show())

 

function b(){
    console.log('bbbbbbbbbbbbb')
    function c(){
        console.log('cccccccccccccc')
    }
    return c;
}

d=b()
d()

 

function b(){
    console.log('bbbbbbbbbbbbb')
}

function c(fn){
    console.log('cccccccccccccccccccc')
    return fn;
}

d=c(b)
d()

 

高阶函数

函数作为参数,或者返回一个函数

const counter=function(){
    let i=0;
    return function (){
        return ++i;
    }
}

c=counter()
console.log(c())
console.log(c())
console.log(c())
console.log(c())

 

map函数

const map = (f, arr) => {
    let newarr = []
    for (let b in arr) {
        newarr[b] = f(arr[b])
    }
    return newarr
};

console.log(map(function (x) { return ++x }, [1, 2, 3, 4]))
console.log(map((x) => ++x, [1, 2, 3, 4]))
console.log(map(x => ++x, [1, 2, 3, 4]))
console.log(map(() => 0 ? 5 : 8, [1, 2, 3, 4]))
console.log(map((x) => x == 3 ? 5 : 8, [1, 2, 3, 4]))

 

 

const sub = ( x = 5, y = 8) => x - y;
console.log(sub(x = 9,(bb=1.3,cc=77)))
console.log(x)
console.log(bb)
console.log(4 - 5.3)

 

 

const b=(x,...args)=>{
    console.log(x)
    console.log(args)
    console.log(arguments)
}

var arr=[1,2,3,'b']
b(...arr)

const c=function(...args){
    let result=0
    for(x in args){
        result+=args[x]
    }
    return result;
}

arr=[1,2,3,4,5]
console.log(c(...arr))

 

arguments 可变参数

(function(p,...args){
    console.log(p)
    console.log(args)
    console.log(arguments)
    for(let x of arguments)
        console.log(x)
})('bbb',1,3,4)

 

const sub=(x,y)=>{console.log(x,y);return x-y}
console.log(sub(...[5,4.8]))
console.log(sub(...[2,4.43,44.4]))
console.log(sub(...[100]))
window.alert(22222)

 

posted @ 2020-12-20 19:05  ascertain  阅读(206)  评论(0编辑  收藏  举报