javascript - 我得到空数组有什么问题?
问题描述
我想要名称中包含字符串“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()
(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);
推荐阅读
- php - 如何修复 PHP 的双斜杠?
- android - firebase - 查询内部对象
- sql-server - 如果 datetime 参数为 null,则分配 datetime 值
- c++ - 当类型适当的构造函数可用时,为什么一个编译器会尝试使用已删除的复制构造函数
- amazon-kinesis-firehose - 使用 Amazon KPL 获取“流 xxx 的分片映射更新”失败:(AWSErrorMarshaller)Encountered Unknown AWSError
- google-cloud-dataproc - 使用多个初始化脚本时 Dataproc 初始化脚本错误 pip command not found 错误
- r - 当我将 Microsoft Word 或 Google Docs 中的代码复制并粘贴到 R 中时,我发现这些行不匹配。我正在使用 Mac。我怎样才能解决这个问题?
- java - 获取列表的 ArrayIndexOutOfBoundsException
- python - 获取列表之间第一个和最后一个公共元素索引的最快方法
- mongodb - 在MongoDB中存储二进制数据时,内部存储为二进制还是base64