我试图使用for循环遍历数组,以获取特定对象的元素。我只想要“标题”和“Id”的元素。但是,我似乎在某处出错了。
//My Array
var newReleases=[
{
"id": 10774532
"title":"Die Hard"
"Genre": "thriller"
},
{
"id": 10653296,
"title":"Bad Boys",
"Genre": "thriller"
}
]
//My for loop
function findId(title, id){
for (var i=0; i < newReleases.length; i++){
if (newReleases[i].id=== title || id){
return newReleases[i];
}
}
return null;
}
console.log(findId(title, Id)
我希望它的工作方式类似于forEach函数:
videoAndTitlePairs = [];
newReleases.forEach(function (videos){
videoAndTitlePairs.push({"id":videos.id, 'title':videos.title});
})
return videoAndTitlePairs;
答案 0 :(得分:2)
关闭,您的if
条件有点偏离 - 特别是||
部分:
if (newReleases[i].id=== title || newReleases[i].id === id){
您需要重新检查整个条件 - if x == 3 || x == 4
- 而不是if x == 3 || 4
完整代码:
function findId(title, id){
for (var i=0; i < newReleases.length; i++){
if (newReleases[i].id=== title || newReleases[i].id === id) {
return newReleases[i];
}
}
return null;
}
并称之为:
var movie = findId(10774532, 10774532);
答案 1 :(得分:1)
请参阅以下forEach
循环的等效代码:
var newReleases=[
{
"id": 10774532,
"title":"Die Hard",
"Genre": "thriller"
},
{
"id": 10653296,
"title":"Bad Boys",
"Genre": "thriller"
}
];
function findId(newReleases){
var idAndTitlePairs = [];
for (var i=0; i < newReleases.length; i++){
idAndTitlePairs.push({"id":newReleases[i].id, 'title':newReleases[i].title});
};
return idAndTitlePairs;
}
console.log(findId(newReleases));
您也可以使用this comment创建等效代码,代码如下:
var idAndTitlePairs = newReleases.map(function(obj){
return {'id': obj.id, 'title':obj.title}
});
console.log(idAndTitlePairs);
答案 2 :(得分:0)
在数组的第一个对象中,缺少逗号以分隔键值对以及if条件不正确并且在console.log的末尾缺少括号,请检查以下更正的代码。
//My Array
var newReleases=[
{
"id": 10774532,
"name":"Die Hard",
"Genre": "thriller"
},
{
"id": 10653296,
"name":"Bad Boys",
"Genre": "thriller"
}
]
//My for loop
function findId(title, id){
for (var i=0; i < newReleases.length; i++){
if (newReleases[i].id === title || newReleases[i].id == id){
return newReleases[i];
}
}
return null;
}
console.log(findId(10774532,10774532))
答案 3 :(得分:0)
newReleases[i].id=== title || id)
只检查id
是否已定义,这不是您想要的。试试newReleases[i].id=== title || newReleases[i].id] === id)