写lc你不会方法怎么写?

162 阅读6分钟

Math

JavaScript的Math对象是一个内置对象,它提供了一组用于执行数学计算的方法和常量。Math对象中的方法和属性都是静态的,也就是说我们可以直接使用它们而不需要先创建一个Math对象实例。

以下是Math对象中常用的一些方法:

  • Math.abs(x):返回一个数的绝对值。
  • Math.ceil(x):返回一个数向上取整的值。
  • Math.floor(x):返回一个数向下取整的值。
  • Math.max(x1, x2, ..., xn):返回一组数中的最大值。
  • Math.min(x1, x2, ..., xn):返回一组数中的最小值。
  • Math.pow(x, y):返回一个数的指定次幂。
  • Math.round(x):返回一个数四舍五入后的值。
  • Math.sqrt(x):返回一个数的平方根。

除了这些方法之外,Math对象还提供了一些常量,例如:

  • Math.PI:圆周率(π)的近似值,约为3.14159。
  • Math.E:自然对数的底数。

以下是一个示例代码,演示了如何使用Math对象中的一些方法:

let x = -10.5;
let y = 4;

console.log(Math.abs(x));      // 输出: 10.5
console.log(Math.ceil(x));     // 输出: -10
console.log(Math.floor(x));    // 输出: -11
console.log(Math.max(x, y));   // 输出: 4
console.log(Math.min(x, y));   // 输出: -10.5
console.log(Math.pow(y, 3));   // 输出: 64
console.log(Math.round(x));    // 输出: -11
console.log(Math.sqrt(y));     // 输出: 2

需要注意的是,Math对象中的方法和属性都是静态的,所以我们不能使用new关键字来创建一个Math对象实例。同时,Math对象中的方法和属性都是全局可用的,也就是说我们可以在任何地方直接使用它们。

>>

在 JavaScript 中,>> 是位运算符之一,用于右移操作。

右移操作将二进制数的所有位向右移动指定的位数,并用符号位进行扩展填充。具体操作如下:

  1. 将要进行右移操作的数转换为二进制表示。
  2. 将二进制数的所有位向右移动指定的位数。
  3. 对于有符号整数,如果最左边的位(符号位)是 1,则在右移时会用 1 进行扩展填充;如果最左边的位是 0,则在右移时会用 0 进行扩展填充。

例如,对于表达式 x >> y,其中 xy 是数字变量:

  • 如果 x 的二进制表示为 10101010,而 y 的值为 3,则 x >> y 的结果为 00010101,即将所有位向右移动三位,并用符号位进行扩展填充。
  • 如果 x 的二进制表示为 11110000,而 y 的值为 2,则 x >> y 的结果为 11111100,即将所有位向右移动两位,并用符号位进行扩展填充。

需要注意的是,右移操作对于有符号整数和无符号整数有不同的行为。对于有符号整数,右移操作会保留符号位,而对于无符号整数,右移操作会用 0 进行扩展填充。

左移运算符这里就不展示了,把右改成左就ok

map

let map = new Map() 代码创建了一个空的 Map 对象。Map 对象是一种键值对集合,其中每个键和每个值都可以是任何类型(包括对象、原始类型等)。下面是一个使用 Map 对象的例子:

let map = new Map();

// 向 Map 中添加键值对
map.set('name', 'John');
map.set('age', 25);

// 从 Map 中获取键值对
console.log(map.get('name')); // "John"
console.log(map.get('age')); // 25

// 检查 Map 中是否存在某个键
console.log(map.has('name')); // true
console.log(map.has('address')); // false

// 从 Map 中删除键值对
map.delete('name');

// 遍历 Map 中的键值对
for (let [key, value] of map) {
  console.log(key + ' = ' + value);
}

// 输出:
// "age = 25"

在上面的例子中,我们创建了一个空的 Map 对象,并向其中添加了两个键值对。我们使用get()方法从 Map 对象中获取键值对,并使用has()方法检查 Map 中是否存在某个键。我们还使用delete()方法从 Map 中删除了一个键值对。最后,我们使用 for...of 循环遍历了 Map 对象中的所有键值对。

希望这个例子可以帮助您理解如何使用 Map 对象。如果您有任何进一步的问题,请随时提问!

set 哈希表常用

Set 是 JavaScript 中的一种数据结构,用于存储唯一值(无重复)。它可以包含任何类型的值,但存储的值在 Set 中必须是唯一的。

创建 Set

你可以通过以下方式创建一个 Set:

// 创建一个空的 Set
let set = new Set();

// 使用数组初始化 Set
let set = new Set([1, 2, 3, 4, 4]);
// 注意:重复的值在 Set 中只会出现一次,所以最终的 Set 是 [1, 2, 3, 4]

添加和删除元素

使用 add() 方法向 Set 中添加新元素,使用 delete() 方法删除元素:

mySet.add(1); // 添加元素
mySet.add(2);
mySet.add(3);

mySet.delete(2); // 删除元素

检查值是否存在

你可以使用 has() 方法检查 Set 中是否包含特定值:

console.log(mySet.has(1)); // 输出: true
console.log(mySet.has(2)); // 输出: false

获取 Set 的大小

你可以使用 size 属性获取 Set 中元素的数量:

console.log(mySet.size); // 输出 Set 的大小

遍历 Set

你可以使用 forEach 方法或者 for...of 循环遍历 Set:

// 使用 forEach 遍历
mySet.forEach(value => {
  console.log(value);
});

// 使用 for...of 遍历
for (let item of mySet) {
  console.log(item);
}

Set 提供了一种有效存储唯一值的方式,并且具有处理集合操作的方法。

parseInt

JavaScript的parseInt函数是用于将字符串转换为整数的方法。它接受两个参数:要转换的字符串和可选的基数(进制)。

基本语法如下:

javascriptCopy Code
parseInt(string, radix);
  • string:要转换为整数的字符串。
  • radix:可选参数,表示要使用的进制。默认是10进制。

parseInt会从字符串的开头开始解析,直到遇到无法解析为数字的字符为止。它会忽略字符串前面的空格,直到找到第一个非空格字符为止。如果字符串以非数字字符开头,则会返回NaN(Not a Number)。

示例:

javascriptCopy Code
console.log(parseInt("123")); // 输出 123
console.log(parseInt("10", 2)); // 使用二进制解析,输出 2
console.log(parseInt("0xFF", 16)); // 使用十六进制解析,输出 255
console.log(parseInt("15px")); // 遇到非数字字符,输出 15
console.log(parseInt("hello")); // 字符串开头就是非数字字符,输出 NaN

需要注意的是,parseInt在解析字符串时会自动忽略开头的零。因此,如果要解析的字符串以零开头,并且指定了进制,可能会导致意外的结果。例如:

javascriptCopy Code
console.log(parseInt("010")); // 输出 10,而不是 8
console.log(parseInt("010", 8)); // 使用八进制解析,输出 8

在ES5之后的JavaScript版本中,还引入了Number.parseInt静态方法,它与parseInt功能相同,但不需要通过全局对象来调用。使用方式如下:

javascriptCopy Code
console.log(Number.parseInt("123")); // 输出 123

总结起来,parseInt是JavaScript中用于将字符串转换为整数的函数,可以指定进制参数进行不同进制的解析。