我正在研究大学的编码问题,但无法弄清楚。
我如何才能从上述数组中获得一个新数组,其中只有将 JavaScript 列为仅使用内置方法的技能的申请人?
数组如下所示:
const NewApplicants = [
{ name: "Jimmy", skills: ["Docker", "JavaScript", "Ruby"] },
{ name: "Dave", skills: ["AWS", "Python"] },
{ name: "Frankie", skills: ["Azure", "JavaScript"] },
{ name: "Liam", skills: ["Java", "JavaScript"] },
{ name: "Fred", skills: ["JavaScript", "AWS"] },
{ name: "Sara", skills: ["PHP", "AWS"] },
{ name: "Matt", skills: [".Net", "PHP", "Docker"] },
];
...并且新数组应如下所示:
const NewJavaScriptApplicants = [
{ name: "Jimmy", skills: ["Docker", "JavaScript", "Ruby"] },
{ name: "Frankie", skills: ["Azure", "JavaScript"] },
{ name: "Liam", skills: ["Java", "JavaScript"] },
{ name: "Fred", skills: ["JavaScript", "AWS"] },
];
最佳答案
使用 Array#filter
和 Array#includes
像这样:
const NewApplicants = [
{ name: "Jimmy", skills: ["Docker", "JavaScript", "Ruby"] },
{ name: "Dave", skills: ["AWS", "Python"] },
{ name: "Frankie", skills: ["Azure", "JavaScript"] },
{ name: "Liam", skills: ["Java", "JavaScript"] },
{ name: "Fred", skills: ["JavaScript", "AWS"] },
{ name: "Sara", skills: ["PHP", "AWS"] },
{ name: "Matt", skills: [".Net", "PHP", "Docker"] },
];
const JavaScriptApplicants = NewApplicants.filter(e => e.skills.includes("JavaScript"));
console.log(JavaScriptApplicants)
The
filter()
method creates a new array with all elements that pass the test implemented by the provided function.
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter
The
includes()
method determines whether an array includes a certain element, returning true or false as appropriate.
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes
关于javascript - 过滤一个对象数组并使用纯Javascript返回一个过滤后的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51864050/