Arrays 如何从对象中提取密钥?

Arrays 如何从对象中提取密钥?,arrays,json,Arrays,Json,我想从电影api json中提取流派密钥。并通过我单击的按钮进行过滤(即戏剧、纪录片等) 但是,由于它具有数组,所以要提取的体裁非常复杂 [{id:1, genres:['drama']},{id:2, genres:['action, war']},{id:3, genres:['drama','documentary','sci-fi']},{id:4, genres :["crime","drama","romance"]} .

我想从电影api json中提取流派密钥。并通过我单击的按钮进行过滤(即戏剧、纪录片等)

但是,由于它具有数组,所以要提取的体裁非常复杂

 [{id:1, genres:['drama']},{id:2, genres:['action, war']},{id:3, genres:['drama','documentary','sci-fi']},{id:4, genres :["crime","drama","romance"]} ..etc ]
我只想提取一个类型因子(即戏剧、动作、戏剧、犯罪…),当按钮点击时,屏幕上会显示过滤后的电影。 你能给我一些建议吗

函数setEventListenrs(电影){
const logo=document.querySelector('.logo');
const btn=document.querySelector('.icron');
logo.addEventListener('click',displayMovie(电影));
btn.addEventListener('单击',(事件)=>onButtonClick(事件,电影));
}
功能ON按钮单击(事件、电影){
常量数据集=event.target.dataset;
const key=dataset.key;//类型
const value=dataset.value;//
//1) 试图使新数组提取一种类型的因子
const arr=新数组();
movies.forEach((movie)=>arr.push(movie.genres[0]);
控制台日志(arr);
如果(包括(价值)){
console.log(movies.genres[0]);
//甚至我也指定了新的键和值来创建新数组。
让key=“ge”;
const arr3=新数组();
for(设i=0;i电影[键]==值);
console.log(过滤);
如果(值==movieG){
console.log(movies.filter((movie)=>movie[key]);
}
console.log(value.genres[0]);
}
功能显示电影(电影){
const container=document.querySelector('.mList');
container.innerHTML=movies.map((movie)=>createHTMLString(movie)).join(“”);
}
喜剧
行动
戏剧
您可以尝试以下方法:

let apiList = [{id:1, genres:['drama']},
               {id:2, genres:['action, war']},
               {id:3, genres:['drama','documentary','sci-fi']},
               {id:4, genres :["crime","drama","romance"]}]

apiList.forEach(element => console.log(Object.values(element)[1][0]));
//Will result the first value of every array:
//drama
//action, war
//drama
//crime
请记住,id:2缺少正确的密钥分配。它应该是
{id:2,类型:['action','war']},

之后,您可以对生成的类型执行任何逻辑


我希望这有助于说明你的情况。

你的代码有不平衡的大括号。第二部电影的类型是否打算在一个字符串中包含这两种类型?代码中有几个未定义的变量,如
it
??