来点基础函数的解析

Math

Math 对象方法

方法描述
abs(x)返回 x 的绝对值。
ceil(x)返回 x,向上舍入为最接近的整数。
exp(x)返回 Ex 的值。
floor(x)返回 x,向下舍入为最接近的整数。
log(x)返回 x 的自然对数。
max(x, y, z, ..., n)返回值最高的数字。
min(x, y, z, ..., n)返回值最小的数字。
random()返回 0 到 1 之间的随机数。
round(x)将 x 舍入为最接近的整数。
sign(x)返回数的符号(检查它是正数、负数还是零)。
trunc(x)返回数字 (x) 的整数部分。

Array

Array 属性

属性描述
constructor返回创建 Array 对象原型的函数。
length设置或返回数组中元素的数量。
prototype允许您向数组添加属性和方法。

Array 方法

方法描述
copyWithin()将数组中的数组元素复制到指定位置或从指定位置复制。
entries()返回键/值对数组迭代对象。
lastIndexOf()在数组中搜索元素,从末尾开始,并返回其位置。
reduceRight()将数组的值减为单个值(从右到左)。
reverse()反转数组中元素的顺序。
shift()删除数组的第一个元素,并返回该元素。
splice()从数组中添加/删除元素。
unshift()将新元素添加到数组的开头,并返回新的长度。

Array.prototype.flat:

js
1
2
3
4
  it('flat', () => {
    expect([1, [2], 3].flat()).toEqual([1, 2, 3]);
    expect([1, [2, [3, [4]]]].flat(Infinity)).toEqual([1, 2, 3, 4]);
  });

Array.prototype.flatMap:

js
1
2
3
4
5
it('flatMap', () => {
    expect([1, 2, 3].flatMap((x) => [x, x * 2])).toEqual([1, 2, 2, 4, 3, 6]);
    expect([1, 2, 3].flatMap(() => 4)).toEqual([4, 4, 4]);
    expect([1, 2, 3].flatMap(() => [4, 5])).toEqual([4, 5, 4, 5, 4, 5]);
  });