数组不能访问元素
Array cannot access elements?
我正在玩亚马逊alexa技能,并试图写我自己的。我有一些技能元素的数组,但我无法访问这些元素。我相信我已经做了正确的一切,我已经谷歌了相当多,但似乎没有工作?!
var myArray = [
{ "name" : "matt", "content" : "this is about matt" },
{ "name" : "james", "content" : "this is about james" },
];
然后我有一些基于用户输入的代码,它使用名称作为查找器。
var requestedName = "matt";
var contentToRead = myArray.filter(function(v){ return v.name == requestedName; });
console.log("I'll read back, " + contentToRead.content);
上面的console.log返回为未定义。我试图解析结果到一个数组,但没有我尝试似乎工作。
任何想法?我确信这是一个简单的问题,但我的知识不足以真正知道具体要寻找什么来解决它!!
.filter
过滤数组,它删除不匹配过滤器的值;返回的结果仍然是一个包含多个对象的数组(因为谓词可以应用于数组中的多个值)。
您想要的行为,返回第一个匹配,在.find
中实现:
var contentToRead = myArray.find(function (v) { return v.name == requestedName; });
array .prototype.filter()创建一个包含所有通过给定函数实现的测试的元素的新数组,因此contentToRead
是一个数组:
var myArray = [
{ "name" : "matt", "content" : "this is about matt" },
{ "name" : "james", "content" : "this is about james" },
];
var requestedName = "matt";
var contentToRead = myArray.filter(function(v) { return v.name === requestedName; });
// You can loop over contentToRead array
contentToRead.forEach(function(item) {
console.log("I'll read back, " + item.content);
});
filter
创建一个新的数组,其中包含您传递给它的函数返回true的元素。
content
不是数组的属性,它是数组中的每个对象的属性。
你需要从数组中取出元素来读取它们的内容。
contentToRead.forEach(function (currentValue) {
console.log("I'll read back, " + currentValue.content);
});
myArray.filter(function(v){ return v.name == requestedName; });
返回的值是一个数组,其中包含与您的过滤器匹配的对象。由于其中只有一个对象,您可以这样访问它:
contentToRead[0].name
相关文章:
- 访问JSON对象内部的数组元素
- 为什么在这个网站上不能通过JS访问元素
- 如何提供在javascript中编写对对象的重复访问以设置元素样式的简写
- 为什么可以't PHP查找可以使用JS或jQuery访问的元素
- 访问html元素值javascript
- 如何访问JSON元素
- 访问代码生成的输入元素上的keyup事件
- 如何访问jquery中给定元素的上部和下部元素
- iframes:从 iframe 内的子元素访问父元素
- 如何从不同的元素访问聚合物元素中的属性
- 使用 ReactJs 从元素访问输入值
- 从子元素访问范围指令
- 是否可以从另一个元素访问元素函数?聚合物1.0
- 直接从事件处理程序中的目标元素访问敲除绑定值
- 角→渲染和克隆元素->访问范围
- 在单击值数组元素时从该元素访问数据
- Javascript事件——如何创建和存储一个只能被一个元素访问的变量
- 从父元素访问子元素属性的简单方法
- 如何使用jQuery和HTML选择元素访问对象
- onchange 事件是否在内部侦听元素访问器的 setter