Страницы

Поиск по вопросам

воскресенье, 2 февраля 2020 г.

Как достать строку из массива который является значением ключа объекта?

#javascript #массивы #циклы #объекты




// Программа поиска операторов мобильной связи Украины
"use strict";
// Создаем объект с значениями ключей-массивами(коды операторов) 
var mobile = {
  Kyivstar: ["039", "067", "068", "096", "097", "098"],
  Vodafone: ["050", "066", "095", "099"],
  Lifecell: ["063", "093"],
  Intertelecom: ["094"],
  PEOPLEnet: ["092"],
  TriMob: ["091"]
}
// Запрашиваем у пользователя номер мобильного телефона
var user = prompt("Введите номер мобильного телефона в формате: 000 1112233", "");
// Получаем доступ к первым 3-м индексам user
var x = user.substr(0, 3);
// Прогоняем в цикле все ключи
for (var key in mobile) {
  var arr = mobile[key];
  // Проходимся по всем массивам
  var check = arr.forEach(function (item, i, arr) {
    if (x === item) {
      //Выводим пользователю результат
      alert("Вас приветствует " + key);
    } 
  }); 
}




Задача была такая:  

Создать объект, который содержит названия и коды мобильных операторов. Пользователь
вводит номер телефона и получает информацию о своем операторе.

Я не совсем уверен в правильности решения данной задачи.
Вроде все работает, а правильно ли?
    


Ответы

Ответ 1



Вставил из старой проверки своей с сайта, может пригодится: // Создаем объект с значениями ключей-массивами(коды операторов) var mobile = { Kyivstar: ["039", "067", "068", "096", "097", "098"], Vodafone: ["050", "066", "095", "099"], Lifecell: ["063", "093"], Intertelecom: ["094"], PEOPLEnet: ["092"], TriMob: ["091"] } // Запрашиваем у пользователя номер мобильного телефона var user = prompt("Введите номер мобильного телефона", ""); var x; var y = -1; user = getTelNums(user); switch (user.length) { case 10: y = 0; break; case 11: y = 1; break; default: alert('неверный формат'); break; } if (y >= 0) { // Получаем доступ к первым 3-м индексам user var x = user.substr(y, 3); // Прогоняем в цикле все ключи var op = "Неизвестный оператор"; for (var key in mobile) { var arr = mobile[key]; // Проходимся по всем массивам var check = arr.forEach(function(item, i, arr) { if (x === item) { op = key; return; } }); } //Выводим пользователю результат alert('Вас приветствует '+op); } function getTelNums(telStr) { var regexpNums = /\d/g; var regexpTel = /^([7|8]{0,1}0\d{2})?\d{7}$/; var resultTel = ""; var checkNums = telStr.match(regexpNums); // из строки пользователя получаем массив цифр if (checkNums) { // если массив не пустой // сделаем из него строку: for (var j = 0; j < checkNums.length; j++) resultTel += checkNums[j]; // проверим, телефон ли это: if (!regexpTel.test(resultTel)) { resultTel = ""; } } return resultTel; }

Комментариев нет:

Отправить комментарий