使用香草JavaScript搜索对象数组
Search Array of Objects Using Vanilla JavaScript
我已经学习编程9周了,我正试图进入Hack Reactor。目前,我正在建立一个网站,遇到了完全的障碍,希望你能帮助我(几天的测试和梳理互联网-我以前的绕过障碍的策略-被证明是徒劳的)。
总之,我有一个对象数组,每个对象是一个包含五个属性的教学策略。我的目标是添加一个搜索函数,迭代每个对象寻找关键字,这样教师就可以搜索策略数组。目前,我正在使用。map方法来迭代每个对象的函数,该对象检查关键字的"tags"属性,但由于某种原因或其他原因,我无法让函数访问"tags"。
我已经创建了一个JSFiddle供您查看:https://jsfiddle.net/jnemec/4ps8rLLx/
var myIdeas = [
{name: "Choral",
image: "img/xideas/choral.jpg",
grade: [1, 9, 9],
theory: "Theory:" + "<br>" + "Coming Soon.",
tags: ["CFU", "literacy"]},
{name: "Highlighters",
image: "img/xideas/highlighters.jpg",
grade: [2, 2, 3],
theory: "Theory:" + "<br>" + "Coming Soon.",
tags: ["manipulative", "differentiation"]},
];
var input = "literacy"
var output = myIdeas.map(function(input) {
if (input == "tags") {
output += "name";
} else {
return "no matches, please try again";}
});
最后一件事- Hack Reactor要求我的项目只使用普通JavaScript(没有框架-从我所读到的会使这个任务更容易)。
除非你知道你为什么这样做,在这种情况下你不应该是map()
'ing,你应该是filter()
'ing。你现在写这个的方式并没有很好地利用map()
——你还不如用forEach()
。你从回调中返回的东西没有意义,也不会以一种合理的方式来检测和报告给用户(尽管你可以只使用output
的值来检测相同的条件)。
阅读map()
, filter()
和forEach()
,并思考它们如何应用于这种情况以及您需要什么样的输出。
在每次回调调用中,input
是对象,所以如果您想访问标记,它将是input.tags
。如果您想访问外部input
(您的搜索词),您需要以不同的方式命名其中一个。
var input = "literacy";
// `input` here declares a variable name that will be set to the current
// element of the array during each invocation of the callback.
var output = myIdeas.map(function(input) {
// `input` now refers to the argument to this function. You've shadowed the
// outer var of the same name and can no longer access it.
// `input` is now an object from the array. If you want to access a prop like
// `tags`, it's `input.tags`;
if (input == "tags") {
output += "name";
} else {
return "no matches, please try again";}
});
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序