理解JavaScript中的“一些”和“每个”数组方法
#javascript #typescript #cleancode #arrays

介绍

在这篇文章中,我们将在JavaScript中探索两种强大的数组方法: some every 。这些方法是从JavaScript继承的,可用于根据指定条件在数组中测试元素。我们将研究他们的语法,用法,并提供具体的示例以证明其功能。

array.some()

Array.some() 测试如果阵列中的至少一个元素通过提供的测试功能。如果至少一个元素满足条件,它将返回 true ;否则,它将返回 false

例子

假设我们有一系列数字,我们想检查它们是否大于10。

const numbers: number[] = [1, 5, 12, 8, 3];

const hasNumberGreaterThan10 = numbers.some((num) => num > 10);
console.log(hasNumberGreaterThan10); // Output: true

在此示例中, some 方法返回 true ,因为数字12大于10。

array.every()

Array.every() 方法测试如果阵列中的所有元素都通过了提供的测试功能。如果所有元素都满足条件,则它将返回 true ;否则,它将返回 false

例子

使用相同的数字数组,让我们检查一下所有数字是否小于20。

const numbers: number[] = [1, 5, 12, 8, 3];

const areAllNumbersLessThan20 = numbers.every((num) => num < 20);
console.log(areAllNumbersLessThan20); // Output: true

在此示例中,每个方法都返回true,因为数组中的所有数字小于20。


使用someevery阵列方法提高代码可读性

现在,让我们看一个示例,说明如何使用某些人可以帮助我们编写更清洁和更可读的代码。我们还将在文章中保留上一个示例。

考虑一个我们有一系列用户的场景,我们想检查所有用户是否是成年人,以及它们是否来自特定的城市。

interface User {
  name: string;
  age: number;
  city: string;
}

const users: User[] = [
  { name: 'Alice', age: 25, city: 'New York' },
  { name: 'Bob', age: 30, city: 'Los Angeles' },
  { name: 'Charlie', age: 22, city: 'New York' },
];

 Without using 'some' and 'every'
function checkUsers(users: User[]): { allAdults: boolean; anyFromNewYork: boolean } {
  let allAdults = true;
  let anyFromNewYork = false;

  for (const user of users) {
    if (user.age < 18) {
      allAdults = false;
    }
    if (user.city === 'New York') {
      anyFromNewYork = true;
    }
  }

  return { allAdults, anyFromNewYork };
}

// Using 'some' and 'every'
function checkUsersWithSomeAndEvery(users: User[]): { allAdults: boolean; anyFromNewYork: boolean } {
  const allAdults = users.every((user) => user.age >= 18);
  const anyFromNewYork = users.some((user) => user.city === 'New York');

  return { allAdults, anyFromNewYork };
}

在第一个 checkUsers 功能中,我们使用 for 循环通过用户数组进行迭代,并手动更新 allAdults anyFromNewYork 变量。这种方法更加复杂,更难阅读。

在第二个 checkUsersWithSomeAndEvery 功能中,我们使用 every some 方法来实现相同的结果。此功能的版本更清洁,更可读性且易于理解。通过使用这些方法,我们可以专注于我们要检查的条件,使代码更加可维护和易于错误。

结论

some every typescript中的数组方法是在指定条件下测试元素的强大工具。通过了解它们的语法和用法以及遵循最佳实践,您可以编写易于阅读和维护的干净有效的代码。