下面的代码有什么问题?我确实是基于我想要得到的键映射的,但是我得到了一个未定义的值?我想得到每个随机码。它确实返回了有6个完全随机码,但它是未定义的。有什么问题吗?谢谢。
我的代码\
let result = me.record.job_detail.questionaires.map(a => a.random_code);
结果
结果
Array(6) [ undefined, undefined, undefined, undefined, undefined, undefined ]
射门阵列(me.record.job_detail.questionaires)
"{'created_at':'2019-02-07','department':‘中小企业’,'timelimit':None,'id':16,‘sub’:‘at’a TEest‘,'title':'TEest’,'random_code':'50-49361157339'}","{'created_at':'2019-02-07',‘部门’:‘TEest DEP','timelimit':None,'id':10,“子标题”:“这是一个测试”,“标题”:“你好”,“随机代码”:‘50-612511266113’},"{'created_at':'2019-02-07','department':'SYSTECH','timelimit':None,'id':9,‘sub’:‘试图测试’,'title':'Test 101',‘随机_代码’:‘50-8381637318’},"{'created_at':'2019-02-07','department':‘中小企业’,‘title_title’:None,'id':8,‘sub’:'just to test','title':'test','random_code':'50-6819378387'}",“{created_at”:'2019-02-08','department':‘test’,'timelimit':None,'id':35,“子标题”:“测试”,“标题”:“测试”,“随机代码”:“50-2143566173”},“{‘创建_at’:'2019-02-07',‘部门’:‘测试’,‘时间限制’:无,'id':13,‘子标题’:‘测试’,‘随机_代码’:'50-2961010112644'}”
发布于 2019-02-15 05:17:01
me.record.job_detail.questionaires
正在返回一个字符串数组。不是一个对象数组。一种解决方案是解析字符串对象,但是,目前它们被认为不是有效的JSON,因此不能使用JSON.parse()
传递它们。
因此,可以使用.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
属性。
https://stackoverflow.com/questions/54702844
复制相似问题