1.题目描述

请你编写一个函数,它接收一个函数数组 [f1, f2, f3,…, fn] ,并返回一个新的函数 fn ,它是函数数组的 复合函数 。

[f(x), g(x), h(x)] 的 复合函数 为 fn(x) = f(g(h(x))) 。

一个空函数列表的 复合函数 是 恒等函数 f(x) = x 。

你可以假设数组中的每个函数接受一个整型参数作为输入,并返回一个整型作为输出。

2.题解

传统方法:

1
2
3
4
5
6
7
8
9
10
11
var compose = function (functions) {
return function (x) {
for (let i = functions.length - 1; i >= 0; i--) {
x = functions[i](x);
}
return x;
};
};

const fn = compose([(x) => x + 1, (x) => 2 * x]);
console.log(fn(4)); // 9
阅读全文 »


在 JavaScript 中,每个对象都有一个与之关联的原型(prototype)。原型是一个对象,它包含了共享的属性和方法,可以被其他对象继承。通过原型链,JavaScript 对象可以访问到其原型对象上的属性和方法。

当你创建一个对象时,JavaScript 会自动为这个对象关联一个原型。你可以将原型看作是一个对象的”父对象”,它定义了该对象共享的属性和方法。通过原型链,对象可以访问其原型对象的属性和方法。

每个 JavaScript 对象都有一个隐藏的属性 __proto__,它指向了该对象的原型。在访问一个对象的属性或方法时,如果对象本身没有找到,JavaScript 引擎会沿着原型链去查找对象的原型,然后再去原型的原型,依此类推,直到找到所需的属性或方法或者到达原型链的末端。

例如:

阅读全文 »


1.题目描述:

请你写一个函数 createCounter. 这个函数接收一个初始的整数值 init 并返回一个包含三个函数的对象。

这三个函数是:

increment() 将当前值加 1 并返回。 decrement() 将当前值减 1 并返回。 reset() 将当前值设置为 init 并返回。

示例 1:

输入:init = 5, calls = [“increment”,“reset”,“decrement”] 输出:[6,5,4] 解释: const counter = createCounter(5); counter.increment(); // 6 counter.reset(); // 5 counter.decrement(); // 4 示例 2:

输入:init = 0, calls = [“increment”,“increment”,“decrement”,“reset”,“reset”] 输出:[1,2,1,0,0] 解释: const counter = createCounter(0); counter.increment(); // 1 counter.increment(); // 2 counter.decrement(); // 1 counter.reset(); // 0 counter.reset(); // 0

阅读全文 »


RESTful API 是一种设计风格和架构原则,用于构建网络应用程序中的 Web API。它是 Representational State Transfer(表现层状态转移)的缩写。

RESTful API 的设计遵循一组约定和原则,这些约定和原则使得 API 更加简单、灵活、易于理解和使用。它借鉴了 HTTP 协议的设计理念,并使用 HTTP 方法来表示不同的操作(GET、POST、PUT、DELETE 等),以及使用 URL 来定位资源。

RESTful API 的含义和特点包括:

阅读全文 »
0%