JavaScript: проверьте, включает ли массив значение / элемент

Введение Массивы - одна из наиболее широко используемых структур данных в компьютерных науках. Имея дело со списком элементов (массивом), нам часто требуется искать определенное значение в списке. JavaScript содержит несколько встроенных методов для проверки того, имеет ли массив определенное значение или объект. В этой статье мы рассмотрим, как проверить, содержит ли массив значение или элемент в JavaScript. Контрольный массив примитивных значений включает в себя массив значений. Include () Функция si

Вступление

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

comments powered by Disqus