#javascript #arrays #vb.net #hashtable
#javascript #массивы #vb.net #хэш-таблица
Вопрос:
У меня есть результат типа:
EMailLabel: "Mailing address"
LogLabel: "User login"
LoginButton: "Enter the program"
И для того, чтобы манипулировать этим результатом, разбивая его на пары, мне нужно преобразовать его в строку, используя следующее:
function parse(str, separator) {
var parsed = {};
var pairs =
str.toString().split(separator);
for (var i = 0, len = pairs.length, keyVal; i < len; i) {
keyVal = pairs[i].split("=");
if (keyVal[0]) {
parsed[keyVal[0]] = keyVal[1];
}
}
return parsed;
}
Но в инструкции:
str.toString().split(separator);
возвращает мне значение:
{[object Object]: undefined}
И из ничего превращается в строку.
Если я использую такую же инструкцию, как эта:
str.split(separator);
Выдал мне ошибку:
Uncaught TypeError: str.split is not a function
И из того, что я искал в Интернете, я увидел, что мне нужно преобразовать str
который является Hashtable
результатом в строку.
Я сделал это, но, к сожалению, без какого-либо успеха
Может ли кто-нибудь помочь мне в этой проблеме?
Комментарии:
1. Не могли бы вы уточнить свои «входные» данные и то, что вы ожидаете получить в качестве «вывода», потому что теперь ваша функция
parse
ожидает строку в качестве входных данных и возвращает хэш-таблицу (map, object). Но в названии вы говорите, что хотите преобразовать из хэш-таблицы в строку.2. xxxmmm да, вы правы. Мне нужно обратное. заключается в отправке таблицы и получении строки. Любая помощь по этому поводу?
3. Не могли бы вы показать, как должна выглядеть строка
4. У меня это есть в верхней части моего вопроса, как результат хэш-таблицы
Ответ №1:
Похоже, вам нужно что-то вроде этого:
function parse(map, separator) {
return Object.keys(map).reduce((data, key) => {
data.push(`${key}${separator} "${map[key]}"`);
return data;
}, []).join('n');
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
Комментарии:
1. С некоторыми дополнениями это сделало его идеальным. Теперь я могу справиться с этим очень легко. Еще раз спасибо