使用其他属性在数组中查找对象的属性
Find object's property inside array using other property
我试图将该数组内每个对象中的Genre属性"链接"到value
内输出给用户的title属性。
var movies= [{
"Title": "Platoon",
"Genre": "War"
}, {
"Title": "Pulp Fiction",
"Genre": "Crime"
}];
var name = value;
//console.log(name) outputs as title the user clicked on just fine
var genre = ...["Genre"]; //no idea how to go about this
//this should say genre = ["Genre"] in object where ["Title"] is same as value
尝试IndexOf方法至少通过搜索"Genre"来检索元素,但它输出-1
。
您可以使用Array#some
。
function findGenre(title) {
function search(a, i) {
if (a.Title === title) {
index = i;
return true;
}
}
var index;
if (movies.some(search)) {
return movies[index].Genre;
}
}
var movies= [{ Title: "Platoon", Genre: "War" }, { Title: "Pulp Fiction", Genre: "Crime" }];
console.log(findGenre('Platoon'));
一个简单的for循环就可以做到。
var genre;
for(var i=0; i< movies.length; i++) {
if (movies[i].Title === name) {
genre = movies[i].Genre;
break; // stop the loop assuming title is unique
}
}
var movies= [{
"Title": "Platoon",
"Genre": "War"
}, {
"Title": "Pulp Fiction",
"Genre": "Crime"
}];
var name = 'Pulp Fiction';
var genre;
for(var i=0; i< movies.length; i++) {
if (movies[i].Title === name) {
genre = movies[i].Genre;
break;
}
}
alert(genre);
你可以,
var found = movies.filter(function(m) {
return m.Title === value
});
if (found.length > 0) {
console.log(found[0].Genre); // or handle some way different if more than one match found
}
您可以使用for..of
循环,对象解构来获取值,通过检查所单击元素的.innerHTML
是否等于对象的Title
属性的值
var movies= [{
"Title": "Platoon",
"Genre": "War"
}, {
"Title": "Pulp Fiction",
"Genre": "Crime"
}];
var divs = document.querySelectorAll("div");
var [value, genre] = [null, null];
for (let el of divs) {
el.onclick = (e) => {
for (let props of movies) {
let {Title, Genre} = props;
if (Title === e.target.innerHTML) {
[value, genre] = [Title, Genre];
console.log(`value:${value}, genre:${genre}`);
break;
}
}
}
}
<div>Platoon</div>
<div>Pulp Fiction</div>
相关文章:
- 在JScript 5.8/WSH中具有属性查找的函数名
- 基于分部属性查找HTML
- JavaScript-通过类似的属性查找对象,并将其推送到一个新的数组中
- 如何在javascript中按属性查找数组中的对象
- 按属性查找元素 jQuery
- 在 JavaScript 中按属性查找类实例
- 在对象上定义 getter,以便所有未定义的属性查找都返回 “”
- 余烬未正确初始化存储:无法读取未定义的属性“查找”
- 按数据属性查找和删除项目
- 按属性查找多维对象中的最低数值
- javascript/aunderline:在数组中按属性查找对象,并将它们组合
- 使用JSON中的某个属性查找子对象
- 使用CSS属性查找元素
- 如何在jQuery中通过属性查找数组中的元素
- 用AngularJS的方式在对象数组中根据对象的属性查找对象
- 量角器:根据属性查找元素
- ES6:通过数组中的一个属性查找对象
- 如何使用jQuery通过数据属性查找动态添加的元素
- 按动态属性查找
- jquery通过src属性查找元素