[英]I'm getting empty array what is wrong?
我想要名稱中包含字符串“Uni”的大學。 然后,創建一個名為 uni 的新數組,其中包含所有這些數組。 我用過的 HOF 方法還是不行。
var graduates = [{ id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "mdolder3@symantec.com" },
{ id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "camorts4@google.com.au" },
{ id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "jharken5@spiegel.de" },
{ id: 7, first_name: "Robbi", university: "Salem University", email: "rbrister6@redcross.org" },
{ id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "cbrosh7@alibaba.com" },
{ id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "mrome8@shinystat.com" },
{ id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "hlethbrig9@foxnews.com" }]
const unisWithUni = [];
console.log(unisWithUni);
for (let i = 0; i < graduates.length; i++) {
if (graduates[i].university === "Uni") {
unisWithUni.push(graduates[i]);
}
}
您正在比較一個完整的字符串。 在javascript(或幾乎任何語言)中,“相等”並不意味着“包含”。 所以"hi" === "hi what's up"
是不一樣的,它們不相等。
在 JavasSript 中,您要查找indexOf()
(舊瀏覽器和新瀏覽器)或includes()
(新瀏覽器),因此:
var graduates = [ { id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "mdolder3@symantec.com" }, { id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "camorts4@google.com.au" }, { id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "jharken5@spiegel.de" }, { id: 7, first_name: "Robbi", university: "Salem University", email: "rbrister6@redcross.org" }, { id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "cbrosh7@alibaba.com" }, { id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "mrome8@shinystat.com" }, { id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "hlethbrig9@foxnews.com"} ]; const unisWithUni = []; for (let i = 0; i < graduates.length; i++) { if (graduates[i].university.indexOf("Uni") > -1) { unisWithUni.push(graduates[i]); } } console.log(unisWithUni);
您應該將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: "mdolder3@symantec.com" }, { id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "camorts4@google.com.au" }, { id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "jharken5@spiegel.de" }, { id: 7, first_name: "Robbi", university: "Salem University", email: "rbrister6@redcross.org" }, { id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "cbrosh7@alibaba.com" }, { id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "mrome8@shinystat.com" }, { id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "hlethbrig9@foxnews.com" }] const unisWithUni = []; for (let i = 0; i < graduates.length; i++) { if (graduates[i].university.includes("Uni")) { unisWithUni.push(graduates[i]); } } console.log(unisWithUni);
這是一個使用 jQuery 的map()
的示例。 為什么,只是因為。
請注意,我在搜索字符串uni
之前將大學轉換為小寫字母,從而使搜索不區分大小寫。
var graduates = [{ id: 4, first_name: "Modestine", university: "International Medical & Technological University", email: "mdolder3@symantec.com" }, { id: 5, first_name: "Chick", university: "Sultan Salahuddin Abdul Aziz Shah Polytechnic", email: "camorts4@google.com.au" }, { id: 6, first_name: "Jakob", university: "Fachhochschule Rosenheim, Hochschule für Technik und Wirtschaft", email: "jharken5@spiegel.de" }, { id: 7, first_name: "Robbi", university: "Salem University", email: "rbrister6@redcross.org" }, { id: 8, first_name: "Colline", university: "Coastal Carolina University", email: "cbrosh7@alibaba.com" }, { id: 9, first_name: "Michail", university: "Universidad Católica de Ávila", email: "mrome8@shinystat.com" }, { id: 10, first_name: "Hube", university: "Universitat Rovira I Virgili Tarragona", email: "hlethbrig9@foxnews.com" } ]; 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.