Конвертировать текст в объект - PullRequest
2 голосов
/ 13 марта 2020

У меня есть строка, что-то вроде этого ниже

const UID = "befjbljfbelgvfghvgjhsv";
console.log(typeof(UID), UID);
string befjbljfbelgvfghvgjhsv

У меня есть утилита, которая принимает приведенный выше формат строки (уникальный идентификатор), но в формате object. Это должно быть в object типе и но string вид. Поэтому я хочу преобразовать вышеупомянутый string в object тип.

так что в основном я хочу что-то вроде:

convertedUID = ???
console.log(typeof(convertedUID), convertedUID);
object befjbljfbelgvfghvgjhsv

Какие-нибудь быстрые хаки?

Ответы [ 2 ]

1 голос
/ 13 марта 2020

Можно придумать метод-обертку, назовем его objectify

function objectify(val){
    var obj = {
        toString: function(){
            return val
        },
        valueOf: function(){return val}
    }
    return obj
}
var x= objectify('this_is_a_string');
console.log(typeof(x) + ' ' + x);

// can be used as a key as well
// mostly all operations what work on a string.
var y={};
y[x] = 456;
console.log(y['this_is_a_string']);

Не ожидайте console.log (typeof (x), x); работать так, как вы просили.
console.log (typeof (x) + '' + x); будет работать, так как конкатенация строк приведет к принуждению.

0 голосов
/ 13 марта 2020

В javascript нет такого объекта, как object befjbljfbelgvfghvgjhsv;

объект должен иметь ключ, пару значений (например, { text: "befjbljfbelgvfghvgjhsv" }), и вы можете преобразовать строку в объект, создав новый объект и присвоив ему ваша строка с ключом в нем; но имя key имеет значение, функция, которую вы собираетесь передать этому объекту, вероятно, ожидает указанное c имя ключа. проверьте фрагмент ниже:

const UID = "befjbljfbelgvfghvgjhsv";
const newObject = { text : "befjbljfbelgvfghvgjhsv" }
console.log(typeof(newObject), newObject.text);
...