JS 相关操作

Siona

JS 相关操作

数组相关

对数组 [{}, {}] 的一系列操作。

arrays.filter()

const duty = [{}, {}]
// 过滤出当前月份数据
const currentMonthDuty = duty.filter(item => new Date(item.calendar).getMonth() === month.value.getMonth())

arrays.forEach()

arrays.map()

forEachmap 都是 JavaScript 数组的迭代方法,但它们在用途和返回值上有一些不同。

  1. forEach:

    • forEach 是一个用于遍历数组的方法,它接受一个回调函数作为参数,该回调函数将在数组的每个元素上被调用。
    • forEach 不会创建一个新的数组,它只是用来对数组进行迭代操作,对原数组进行修改或者执行一些操作。
    • forEach 的回调函数接受三个参数:当前元素、当前元素的索引和数组本身。
    const numbers = [1, 2, 3];
    numbers.forEach((num, index) => {
      console.log(`Element ${num} at index ${index}`);
    });
    
  2. map:

    • map 也是用于遍历数组的方法,但它会创建一个新的数组,该数组的元素是对原数组元素应用某个函数后的结果。
    • map 不会改变原数组,而是返回一个新的数组,原数组保持不变。
    • map 的回调函数同样接受三个参数:当前元素、当前元素的索引和数组本身。
    const numbers = [1, 2, 3];
    const squaredNumbers = numbers.map(num => num ** 2);
    console.log(squaredNumbers); // [1, 4, 9]
    

总体来说,forEach 主要用于执行对数组的操作,而 map 主要用于创建一个新的数组,其中的元素是对原数组元素进行转换后的结果。选择使用其中哪一个方法通常取决于您的具体需求。

扩展运算符 ...Arrays

如果您想使用扩展运算符 ... 来将数组 [0, 1, 2, 3, 4] 中的数字求和,您可以通过结合 reduce 方法来实现。 以下是示例代码:

const data = [0, 1, 2, 3, 4];

const sum = [...data].reduce((acc, currentValue) => acc + currentValue, 0);

console.log(sum); // 输出 10

在这个例子中,[...data] 使用扩展运算符创建了数组的副本,然后使用 reduce 方法对数组中的所有元素进行求和。 acc 是累加器,currentValue 是当前迭代的元素值,0 是初始值。最终得到的 sum 变量就是数组中所有数字的和。

Arrays.includes(element) 检查数据是否包含特定元素

let arr: string[] = ['aaa', 'bbb', 'ccc'];

if (arr.includes('aaa')) {
  console.log('数组包含 "aaa"');
} else {
  console.log('数组不包含 "aaa"');
}

在这个例子中,arr.includes('aaa') 返回一个布尔值,表示数组 arr 是否包含字符串 'aaa'

请确保数组和目标元素的类型匹配,否则 TypeScript 可能会发出类型错误。 在这里,我将数组定义为 string[],因为'aaa' 是字符串。 如果你的数组包含其他类型的元素,记得将类型调整为相应的类型。

Last Updated 3/6/2024, 10:02:39 AM