Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2020, 14:46
Новичок на форуме
Отправить личное сообщение для Valentin.Zh Посмотреть профиль Найти все сообщения от Valentin.Zh
 
Регистрация: 22.06.2020
Сообщений: 3

Ошибка в коде
Добрый день! Написал функцию, которая принимает два параметра: ключ - имя или телефон, но не работает: "else{console.log('Пользователь в БД не найден');}". Помогите разобраться, что я делаю не правильно.


const users = [
{
name: 'Dima',
age: 39,
phone: '099-245-45-45'
},
{
name: 'Vasya',
age: 28,
phone: '066-500-49-45'
},
{
name: 'Kolya',
age: 39,
phone: '063-100-20-13'
}
];

let userKey = 'Dima';
getUserData(userKey, users);

function getUserData(userKey, userArray) {
for (let i = 0; i < userArray.length; i++) {
if ((userArray[i].name == userKey) || (userArray[i].phone == userKey)) {
console.log('Имя пользователя: ' + userArray[i].name);
console.log('Возраст пользователя: ' + userArray[i].age);
console.log('Телефон пользователя: ' + userArray[i].phone);
} else {
console.log('Пользователь в БД не найден');
}
}
}
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2020, 15:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Именно так, должно работать (нужно только при нахождении прерывать цикл, иначе то что и получаете), только это не база, а вываливать на страницы пользователя его конфиденциальные данные без его согласия, это наказуемо Законом.

Последний раз редактировалось laimas, 22.06.2020 в 15:23.
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2020, 15:31
Новичок на форуме
Отправить личное сообщение для Valentin.Zh Посмотреть профиль Найти все сообщения от Valentin.Zh
 
Регистрация: 22.06.2020
Сообщений: 3

Спасибо, что ответили. Вы бы не могли подправить код так как я новичок и только учусь и не знаю как прерывать цикл. С законом я дружу, всего лишь хочу выучить js.
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2020, 15:39
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Valentin.Zh
Вы бы не могли подправить код так как я новичок и только учусь
Правильно, это делать запрос к серверу, он ищет и возвращает если найдено, и только те данные о пользователе, которые он может сообщить о себе как публичные.

Вы думаете это шутки? Читайте законодательство - вы как владелец чьих-то данных, обязаны их не просто хранить, но и не разглашать. Если вы будете поступать с ними по своему усмотрению, разглашая их, любой пользователь вправе подать на вас в суд, и суд примет его сторону. Если такая утечка его данных для пользователя будет серьезной проблемой, то наказание для вас может быть очень серьезным.

А прерывание цикла break.
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2020, 15:43
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

const users = [
  {
    name: 'Dima',
    age: 39,
    phone: '099-245-45-45'
  },
  {
    name: 'Vasya',
    age: 28,
    phone: '066-500-49-45'
  },
  {
    name: 'Kolya',
    age: 39,
    phone: '063-100-20-13'
  }
];

let userKey = 'Dima';
getUserData(userKey, users);

function getUserData(userKey, userArray) {
  for (let i = 0; i < userArray.length; i++) {
    if ((userArray[i].name == userKey) || (userArray[i].phone == userKey)) {
      console.log('Имя пользователя: ' + userArray[i].name);
      console.log('Возраст пользователя: ' + userArray[i].age);
      console.log('Телефон пользователя: ' + userArray[i].phone);
      return userArray[i]
    } 
  }
  console.log('Пользователь в БД не найден');
}


или тоже самое:
const users = [
  {
    name: 'Dima',
    age: 39,
    phone: '099-245-45-45'
  },
  {
    name: 'Vasya',
    age: 28,
    phone: '066-500-49-45'
  },
  {
    name: 'Kolya',
    age: 39,
    phone: '063-100-20-13'
  }
];

const getUserData = key => users.find(u => u.name.toLocaleLowerCase() === key.toLocaleLowerCase() || u.phone === key) //  dima === DiMa
// null = not found
console.log(getUserData('dima'))
Ответить с цитированием
  #6 (permalink)  
Старый 22.06.2020, 15:47
Новичок на форуме
Отправить личное сообщение для Valentin.Zh Посмотреть профиль Найти все сообщения от Valentin.Zh
 
Регистрация: 22.06.2020
Сообщений: 3

Спасибо Вам огромное!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BOOTSTRAP. Неизвестная ошибка в коде!!! garrip91 (X)HTML/CSS 1 24.12.2018 11:26
Есть ошибка в коде, но не могу ее найти Darya_kod Общие вопросы Javascript 21 06.01.2017 13:48
В чем ошибка в коде под ie8? addEventListener jssj Events/DOM/Window 1 30.11.2013 18:27
Ошибка в коде (Sandr) Общие вопросы Javascript 5 23.06.2011 01:42
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07