簡體   English   中英

我得到空數組有什么問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM