繁体   English   中英

在JavaScript中转换和合并数组

[英]Convert and combine arrays in javascript

嘿,关于在javascript中转换数组,我需要您的帮助。 请查看我的输出数据:

Answers: { 
 '0': { '0': 'ans 1' },
 '1': { '0': 'ans 11', '1': 'ans 22', '2': 'ans 33' } 
}
correctAnswers: { 
 '1': { '0': true, '1': true } 
}

而且我想如果索引与set false不匹配,那么我期望以下数组:

convertArray = [[false], [true, true, false]]

对于此任务,我使用以下功能

var choiceBoolean = [];
for(corrAns in Answers){
   let tempArr = [];              
   Object.keys(Answers[corrAns]).forEach(k => 
   tempArr[k] = correctAnswers[corrAns][k] || false)
   choiceBoolean.push(Array.apply(null, tempArr).map(Boolean))
}

不幸的是,我收到错误TypeError: Cannot read property '0' of undefined

你可以从你的按键映射answer通过检查正确的答案从内键映射到另一个阵列。

此解决方案与检查是否存在正确答案一起工作,然后检查内键。

correct[k] && correct[k][l] || false
^^^^^^^^^^                            check first if exists
              ^^^^^^^^^^^^^           take a truthy value
                               ^^^^^  if not take false

 var answers = { 0: { 0: 'ans 1' }, 1: { 0: 'ans 11', 1: 'ans 22', 2: 'ans 33' } }, correct = { 1: { 0: true, 1: true } }, result = Object .keys(answers) .map(k => Object.keys(answers[k]).map(l => correct[k] && correct[k][l] || false)); console.log(result); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM