Страницы

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

четверг, 4 апреля 2019 г.

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

// Программа поиска операторов мобильной связи Украины "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); } }); }
Задача была такая:
Создать объект, который содержит названия и коды мобильных операторов. Пользователь вводит номер телефона и получает информацию о своем операторе.
Я не совсем уверен в правильности решения данной задачи. Вроде все работает, а правильно ли?


Ответ

Вставил из старой проверки своей с сайта, может пригодится:
// Создаем объект с значениями ключей-массивами(коды операторов) 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; }

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

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