首页 > 解决方案 > 我得到空数组有什么问题?

问题描述

我想要名称中包含字符串“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]);
  }
}

标签: javascriptarrays

解决方案


您正在比较一个完整的字符串。在 javascript(或几乎任何语言)中,“相等”并不意味着“包含”。所以"hi" === "hi what's up"是不一样的,他们是不相等的。

在 JavasSript 中,您要查找indexOf()(old&new browsers) 或includes()(new browsers),因此:

 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);


推荐阅读