Вступление
Массивы - одна из наиболее широко используемых структур данных в компьютерных науках. Имея дело со списком элементов (массивом), нам часто требуется искать определенное значение в списке. 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() помогает нам искать наличие объекта на
основе их содержимого.