me.record.job_detail.questionaires
возвращает массив строк.Не массив объектов.Одним из решений было бы проанализировать ваши строковые объекты, однако на данный момент они не считаются действительными JSON, и поэтому они не могут быть переданы с использованием JSON.parse()
.
Таким образом, вы можете сделать вашу строку допустимой JSON, используя.replace()
Использование .replace
с JSON.parse()
:
let arr = ["{'created_at': '2019-02-07', 'department': 'sme', 'timelimit': None, 'id': 16, 'sub_title': 'this is an exam', 'title': 'exam', 'random_code': '50-49361157339'}", "{'created_at': '2019-02-07', 'department': 'TEest DEP', 'timelimit': None, 'id': 10, 'sub_title': 'this is a test', 'title': 'Hello', 'random_code': '50-612511266113'}", "{'created_at': '2019-02-07', 'department': 'SYSTECH', 'timelimit': None, 'id': 9, 'sub_title': 'Trying to test', 'title': 'Test 101', 'random_code': '50-8381637318'}", "{'created_at': '2019-02-07', 'department': 'SME', 'timelimit': None, 'id': 8, 'sub_title': 'just to test', 'title': 'Exam', 'random_code': '50-6819378387'}", "{'created_at': '2019-02-08', 'department': 'test', 'timelimit': None, 'id': 35, 'sub_title': 'test', 'title': 'test', 'random_code': '50-2143566173'}", "{'created_at': '2019-02-07', 'department': 'Test', 'timelimit': None, 'id': 13, 'sub_title': 'test', 'title': 'test', 'random_code': '50-2961010112644'}"];
let result = arr.map(a => JSON.parse(a.replace(/'/g, '"').replace(/: (\w+)/g, ': "$1"')).random_code);
console.log(result);
Выше я использую .replace
для замены всех одинарных кавычек ('
) на двойные кавычки (чтобы их можно было проанализировать с помощью JSON.parse()
). Я такжезатем убедитесь, что все значения (например, None
) являются строками, следовательно, второе замените.Это позволит вам выполнить синтаксический анализ ваших строк в массиве, что позволит вам получить доступ к свойству .random_code
.