Поиск переменных по вхождению определённой строки в их название.
Возможно ли найти переменные по вхождению определённой строки в её название.
Например: var qwe_1 = 1; var qwe_2 = 2; var qwe_n = n; var rty_45 = 45; Надо выбрать переменные, которые начинаются на qwe |
var obj = { qwe_1: 1, qwe_2: 2, qwe_n: "n", rty_45: 45 }; for (var key in obj) { if (key.indexOf("qwe") != -1) { alert(key + ", " + obj[key]); } } Такое можно сделать и с глобальными переменными (var key in window), но так делать не рекоменуется. |
Используй свойства объекта, вместо переменных:
var obj = { qwe_1: 1, qwe_2: 2, //qwe_n: n, rty_45: 45 }; var qwe = Object.keys(obj).filter(function (key) { return key.startsWith('qwe_'); }); alert(qwe); Полифилы: String.prototype.startsWith, Object.keys, Array.prototype.filter -------- долго писал :-( |
Спасибо за ответы! Через объект всё понятно. А можно как-нибудь не используя глобальный window?
|
А может просто использовать массивы? Если у вас в коде есть переменные отличающиеся только циферкой на конце - с высокой вероятностью вы просто говнокодите.
var qwe = [1, 2, n]; Цитата:
|
Я прекрасно понимаю что это говнокод. Но! Задача стоит именно так. Пользователь описывает некоторые параметры на своём сайте (считается что он совсем дубень и ему будет сложно описать параметры внутри объекта). После этого подгружается скрипт со стороннего ресурса, собирает эти параметры и отправляет (в ответ приходит картинка).
Вопрос второй))) Есть вариант, что пользователь захочет получить два изображения. Т.е. он должен два раза описать один и тот же параметр (переменную) с разными значениями. Как сделать, чтобы они не "перетирали" друг друга, и как достучатся до них "пачками"? |
нужно более точное определение «некоторые параметры»
иначе под ним можно подразумевать все что угодно а то писать логику обрабатывающую что угодно крайне сложно |
Цитата:
<input type='hidden' name='тут_то_самое_имя' /> |
var name = '234234234';
var ext = 'jpg'; |
Цитата:
|
Часовой пояс GMT +3, время: 17:46. |