函数式Javascript算法未从筛选器返回预期结果
我正在练习在Javascript中使用map()、filter()和concatAll()。我希望下面的代码返回以下内容:函数式Javascript算法未从筛选器返回预期结果,javascript,Javascript,我正在练习在Javascript中使用map()、filter()和concatAll()。我希望下面的代码返回以下内容: [{ "id": 70111470, "title": "Die Hard", "boxart":"http://cdn-0.nflximg.com/images/2891/DieHard150.jpg" }] 它不是从boxart中提取URL,我不知道为什么。我在运行代码时得到以下输出: [{"id": 70111470,"title": "Die
[{
"id": 70111470,
"title": "Die Hard",
"boxart":"http://cdn-0.nflximg.com/images/2891/DieHard150.jpg"
}]
它不是从boxart中提取URL,我不知道为什么。我在运行代码时得到以下输出:
[{"id": 70111470,"title": "Die Hard"}]
问题是这一行:
video.boxart.filter(getBoxart.url
筛选器正在返回boxarts数组(该数组没有url属性)
您需要在筛选器之后映射以返回url数组,或者只获取第一个url,问题是这一行:
video.boxart.filter(getBoxart.url
筛选器正在返回boxarts数组(该数组没有url属性)
您要么需要在筛选器之后映射以返回URL数组,要么只获取第一个URL,这是因为
video.boxarts.filter(getBoxart)
返回一个数组(如果这是过滤器的本机实现,但可能也用于任何其他实现),然后执行以下操作
video.boxarts.filter(getBoxart).url
返回未定义的
,因为数组没有url
属性
您可能需要执行以下操作:
video.boxarts.filter(getBoxart)[0].url
那是因为
video.boxarts.filter(getBoxart)
返回一个数组(如果这是过滤器的本机实现,但可能也用于任何其他实现),然后执行以下操作
video.boxarts.filter(getBoxart).url
返回未定义的
,因为数组没有url
属性
您可能需要执行以下操作:
video.boxarts.filter(getBoxart)[0].url
concatAll
从哪里来?如果没有concatAll
我会得到一个额外的数组:[{id:70111470,title:'Die Hard',boxart:'http://cdn-0.nflximg.com/images/2891/DieHard150.jpg{id:654356453,标题:'坏男孩',boxart:'http://cdn-0.nflximg.com/images/2891/BadBoys150.jpg' } ], [ {id:65432445,标题:'会议厅',boxart:'http://cdn-0.nflximg.com/images/2891/TheChamber150.jpg“},{id:675465,标题:'断裂',boxart:'http://cdn-0.nflximg.com/images/2891/Fracture150.jpg“}]
concatAll
从哪里来?如果没有concatAll
我会得到一个额外的数组:[[{id:70111470,标题:'Die Hard',boxart:'http://cdn-0.nflximg.com/images/2891/DieHard150.jpg{id:654356453,标题:'坏男孩',boxart:'http://cdn-0.nflximg.com/images/2891/BadBoys150.jpg' } ], [ {id:65432445,标题:'会议厅',boxart:'http://cdn-0.nflximg.com/images/2891/TheChamber150.jpg“},{id:675465,标题:'断裂',boxart:'http://cdn-0.nflximg.com/images/2891/Fracture150.jpg“}]
正如您所建议的,我最终使用了一个映射。video.boxart.filter(getBoxart.map)(函数(bA){return bA.url;}).toString()
正如您所建议的,我最终使用了一个映射。video.boxart.filter(getBoxart.map)(函数(bA){return bA.url;}).toString()