В этом коротком учебнике мы пойдем через “в” Оператор в JavaScript – что это такое, что он делает и как вы можете реализовать его в своем собственном коде JavaScript.
Готовый? Давайте начнем!
Что такое оператор “в” in “?
Я рад, что ты спросил. В JavaScript оператор «в» – это Встроенный оператор который используется для проверки, является ли собственность существует в Объект Анкет
При использовании в выражении оператор «in» вернет Логическое значение ; Верно Если собственность была найдена в объекте, ложный если не.
Оператор «In» также может быть использован на Массив , поскольку массивы технически являются объектами в JavaScript. Разница здесь в том, что оператор «в» может быть использован только для выяснения, определенный ли какой -то Индекс находится в пределах массива, поскольку значения в Массив не является свойствами из массив.
Это может показаться немного запутанным, так что давайте посмотрим на это в действии.
Как использовать оператора “в” в “?
Синтаксис довольно прост. У оператора «в» есть два параметра:
- PROP (строка или символ, который представляет имя свойства или индекс массива.)
- объект (Объект, в котором вы будете проверять, содержит ли он опора).
В коде это выглядит так:
prop in object
С некоторым контекстом:
let obj = { prop1: 1, prop2: 2, prop3: 3 }; "prop1" in obj; //=> true "prop2" in obj; //=> true "prop5" in obj; //=> false
Как мы видим, первые два реквизита являются Ключи в (и, следовательно, свойства) объекта obj и верните A Верно Boolean, в то время как “Prop5” – это не ключ или свойство и, таким образом, возвращает ЛОЖЬ .
Ключи в объекте считаются свойствами, так как их можно напрямую, как на объекте, так же:
let obj = { prop1: 1, prop2: 2, prop3: 3 }; obj.prop1; //=> 1 obj["prop1"]; //=> 1
Вот почему оператор «в» не может быть использован для проверки элементов/значений в массиве, в то время как он может использоваться для проверки свойств массива Объект , как индексы или свойство длины:
let arr = [1, 2, 3, 4, 5]; // These operators check for Array indices, not values: 0 in arr; //=> true 2 in arr; //=> true 5 in arr; //=> false // This operator checks for a property of the Array Object: "length" in arr; //=> true //=> This returns true because arr.length is a property
Как я мог использовать это в реальной программе?
Оператор «In» в основном полезен для написания читаемого, дружественного к человеку код, когда вам нужно проверить наличие свойства или ключа в объекте.
Допустим, существует кусок существующей функции, которая проверяет, существует ли ключ в объекте в цикле для цикла, выполняя один бит логики, если это так, и еще один бит логики, если это не так.
Этот пример не имеет большого контекста, но терпите меня:
let agesOfUsers = { 18: ["Adam", "Jess"], 21: ["Mike", "Alex"], 24: ["Tom"] }; function getNamesForAge(age) { if (age in agesOfUsers) { agesOfUsers[age].forEach( user => console.log(user) ); } else { console.log(`No users of age ${age} on record.`); } } getNamesForAge(18); //=> Adam //=> Jess getNamesForAge(30); //=> No users of age 30 on record.
Для записи, заявление IF также может быть написано так:
if (!!agesOfUsers[18]) { // logic }
Тем не менее, существует большая субъективная ценность для того, чтобы сделать код более удобным и читаемым человеком, особенно в общей кодовой базе. Следовательно, почему использование оператора «в» – отличный вариант!
Если вы зашли так далеко, большое спасибо за чтение! Я надеюсь, что этот пост был полезным или образовательным в вашем путешествии JavaScript.:)
Я буду продолжать писать учебники и сбои для концепций, так как я их сам узнаю, так что следите за обновлениями в будущем!
Оригинал: “https://dev.to/seanwelshbrown/using-the-in-operator-in-javascript-46if”