我希望名称中包含字符串“ Uni”的大学。然后,创建一个名为uni的新数组,其中包含所有数组。我使用HOF方法仍然无法正常工作。
var graduates = [{ id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "[email protected]" },
{ id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "[email protected]" },
{ id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "[email protected]" },
{ id: 7, first_name: "Robbi", university: "Salem University", email: "[email protected]" },
{ id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "[email protected]" },
{ id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "[email protected]" },
{ id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "[email protected]" }]
const unisWithUni = [];
console.log(unisWithUni);
for (let i = 0; i < graduates.length; i++) {
if (graduates[i].university === "Uni") {
unisWithUni.push(graduates[i]);
}
}
您应该以这种方式将graduates[i].university === "Uni"
更改为graduates[i].university.includes("Uni")
,任何包含'Uni'的字符串都将被发现,否则它将仅与“ Uni”完全匹配。
也将console.log(unisWithUni);
放在for循环之后。
var graduates = [{ id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "[email protected]" },
{ id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "[email protected]" },
{ id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "[email protected]" },
{ id: 7, first_name: "Robbi", university: "Salem University", email: "[email protected]" },
{ id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "[email protected]" },
{ id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "[email protected]" },
{ id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "[email protected]" }]
const unisWithUni = [];
for (let i = 0; i < graduates.length; i++) {
if (graduates[i].university.includes("Uni")) {
unisWithUni.push(graduates[i]);
}
}
console.log(unisWithUni);
您正在比较一个完整的字符串。在javascript(或几乎所有语言)中,“等于”并不意味着“包含”。因此"hi" === "hi what's up"
不相同,它们不相等。
在JavasSript中,您要查找indexOf()
(旧的和新的浏览器)或includes()
(新的浏览器),所以:
var graduates = [
{ id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "[email protected]" },
{ id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "[email protected]" },
{ id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "[email protected]" },
{ id: 7, first_name: "Robbi", university: "Salem University", email: "[email protected]" },
{ id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "[email protected]" },
{ id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "[email protected]" },
{ id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "[email protected]"}
];
const unisWithUni = [];
for (let i = 0; i < graduates.length; i++) {
if (graduates[i].university.indexOf("Uni") > -1) {
unisWithUni.push(graduates[i]);
}
}
console.log(unisWithUni);
这里是使用jQuery的map()
的示例。为什么,只是因为。
[Note我在搜索字符串uni
之前使大学转换为小写,从而使搜索大小写不敏感。
var graduates = [{
id: 4,
first_name: "Modestine",
university: "International Medical & Technological University",
email: "[email protected]"
},
{
id: 5,
first_name: "Chick",
university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic",
email: "[email protected]"
},
{
id: 6,
first_name: "Jakob",
university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft",
email: "[email protected]"
},
{
id: 7,
first_name: "Robbi",
university: "Salem University",
email: "[email protected]"
},
{
id: 8,
first_name: "Colline",
university: "Coastal Carolina University",
email: "[email protected]"
},
{
id: 9,
first_name: "Michail",
university: "Universidad Católica de Ávila",
email: "[email protected]"
},
{
id: 10,
first_name: "Hube",
university: "Universitat Rovira I Virgili Tarragona",
email: "[email protected]"
}
];
var unisWithUni = $.map(graduates, grad => {
return grad.university.toLowerCase().includes("uni") ? grad : null;
});
console.log(unisWithUni);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>