Вступление
Массивы - одна из наиболее широко используемых структур данных в компьютерных науках. Имея дело со списком элементов (массивом), нам часто требуется искать определенное значение в списке. JavaScript содержит несколько встроенных методов для проверки того, имеет ли массив определенное значение или объект.
В этой статье мы рассмотрим, как проверить, содержит ли массив значение или элемент в JavaScript .
Проверить массив примитивных значений включает значение
Функция Array.includes ()
Самый простой способ проверить наличие примитивного значения в массиве -
использовать метод includes()
:
let isInArray = arr.includes(valueToFind[, fromIndex])
// arr - array we're inspecting
// valueToFind - value we're looking for
// fromIndex - index from which the seach will start (defaults to 0 if left out)
// isInArray - boolean value which tells us if arr contains valueToFind
Например, проверим, есть ли в массиве животных смайлики собаки и кошки:
let animals = ["🐘", "🐒", "🐶", "🐍"]
animals.includes("🐶") // true
animals.includes("🐱") // false
Функция возвращает логическое значение, обозначающее наличие или отсутствие значения.
Функция Array.indexOf ()
В случаях, когда нам нужно точное местоположение indexOf(elem)
,
который ищет elem
в указанном массиве и возвращает индекс его первого
вхождения, и -1
если массив не содержит elem
.
Например, мы можем найти первое вхождение оценки в массиве, содержащем оценки:
let grades = ["B", "D", "C", "A"]
grades.indexOf("A") // 3
grades.indexOf("F") // -1
В первом случае элемент присутствует, и его позиция возвращается. Во втором случае возвращаемое значение означает, что элемент отсутствует.
Мы можем использовать это, чтобы легко изменить поток кода:
let grades = ["B", "D", "C", "A"]
if (grades.indexOf("F") >= 0) {
console.log("Element is present");
} else {
console.log("Element is not present");
}
Если мы перейдем к F
, будет напечатано соответствующее сообщение:
Element is not present
Проверка, включает ли массив объектов объект
some () функция
При поиске объекта includes()
проверяет, совпадает ли указанная ссылка
на объект со ссылкой в массиве. Это редко то, что нам нужно, потому что
объекты могут иметь одинаковые поля с соответствующими значениями, но с
разными ссылками.
Мы можем использовать метод some()
для поиска по содержимому объекта.
Метод some()
принимает один аргумент, принимает обратный вызов,
который выполняется один раз для каждого значения в массиве, пока он не
найдет элемент, который удовлетворяет условию, установленному callback
, и не вернет true
.
Давайте посмотрим на some()
в действии, чтобы лучше понять это:
let animals = [{name: "dog"}, {name: "snake"}, {name: "monkey"}, {name: "donkey"}]
let element = {name: "monkey"}
animals.some(animal => animal.name === element.name)
Функция обратного вызова возвращает false
для первых двух случаев, но
возвращает true
для третьего элемента, поскольку имена совпадают.
После этого some()
останавливает выполнение и возвращает true
.
Заключение
В этой статье мы рассмотрели несколько способов проверить, содержит ли массив значение или нет, в JavaScript.
Мы рассмотрели includes()
, которая возвращает логическое значение,
если оно присутствует. Функция indexOf()
возвращает индекс значения,
если он присутствует, и -1
если его нет.
Наконец, для объектов some()
помогает нам искать наличие объекта на
основе их содержимого.