如何使用Javascript过滤多个数组
我试图过滤多个技能数组(它们来自json文件)(下面的示例)并打印出候选人姓名+所有技能如何使用Javascript过滤多个数组,javascript,Javascript,我试图过滤多个技能数组(它们来自json文件)(下面的示例)并打印出候选人姓名+所有技能 ┌─────────┬───────────────────────┐ │ (index) │ Values │ ├─────────┼───────────────────────┤ │ 0 │ 'angular' │ │ 1 │ 'css' │ │ 2 │ 'bootstr
┌─────────┬───────────────────────┐
│ (index) │ Values │
├─────────┼───────────────────────┤
│ 0 │ 'angular' │
│ 1 │ 'css' │
│ 2 │ 'bootstrap' │
│ 3 │ 'react.js' │
│ 4 │ 'rxjs' │
│ 5 │ 'git' │
│ 6 │ 'java' │
│ 7 │ 'graphql' │
│ 8 │ 'node.js' │
│ 9 │ 'redux' │
│ 10 │ 'json' │
│ 11 │ 'html' │
│ 12 │ 'sql' │
│ 13 │ 'linux' │
│ 14 │ 'gatsby.js' │
│ 15 │ 'mongodb' │
│ 16 │ 'javascript' │
│ 17 │ 'php' │
│ 18 │ 'ionic' │
│ 19 │ 'amazon web services' │
└─────────┴───────────────────────┘
但不是所有技能,我只得到单个值(1个技能/1行),控制台中的输出如下所示:
这家伙懂javascript这家伙知道nodejs
这家伙知道如何反应
这家伙懂javascript 但目标是将所有技能都放在一行中,如下所示: 这家伙知道javascript节点的反应 input.json
{
"stackIncluded": [
"nodejs",
"javascript"
]
}
下面是我编写的函数代码,index.js
“严格使用”;
const curationInput=require('./curation input.json');
const fileToCurate=require('./trlele.json');
异步函数curateStack(){
const stackIncluded=curantionInput.stackIncluded;
fileToCurate.forEach(候选=>{
candidate.folder.forEach(folder=>{
//获取包含候选技能的所有对象的数组
const allSkills=folder.skills;
//将具有对象的阵列映射到仅具有技能的阵列
const values=allSkills.map(item=>item.value);
//将技能的值小写
const lowercaseSkills=values.map(skill=>skill.toLowerCase());
//console.table(小写)
小写kills.forEach(skillsArray=>{
如果(包括堆栈,包括(skillsArray)){
log(‘这家伙知道’,skillsArray);
}
});
});
});
}
您需要更改脚本的最后一部分
let str='这家伙知道'
小写kills.forEach(skillsArray=>{
如果(包括堆栈,包括(skillsArray)){
str+=skillsArray+'';
}
});
console.log(str);
另一种方式
const skills=lowercaseSkills.filter(item=>stackinclude.includes(item));
log('这家伙知道',skills.join(',')));
这家伙知道
应该在循环之前尝试在forEach()候选者中创建一个字符串,将每个()技能附加到技能数组中