Javascript 如何从对象数组中查找name属性
我试图从给定id的对象数组中获取值,但无法使其正常工作。问题是我有一个对象数组,所以我不知道如何迭代它们。我知道使用.map方法可能是一个可行的解决方案,但我对这方面还不熟悉 我的方法是,给定一个Id,它必须返回同一对象的名称。 我怎样才能重复它们?我实际上在用这个:Javascript 如何从对象数组中查找name属性,javascript,arrays,object,dictionary,Javascript,Arrays,Object,Dictionary,我试图从给定id的对象数组中获取值,但无法使其正常工作。问题是我有一个对象数组,所以我不知道如何迭代它们。我知道使用.map方法可能是一个可行的解决方案,但我对这方面还不熟悉 我的方法是,给定一个Id,它必须返回同一对象的名称。 我怎样才能重复它们?我实际上在用这个: getName(field_id: any): any { var aux = 0; var obj = this.customFields[aux].filter(function (obj) { return
getName(field_id: any): any {
var aux = 0;
var obj = this.customFields[aux].filter(function (obj) {
return obj.name === field_id;
})[0];
aux ++;
}
其中aux是迭代器。Ofc不工作。考虑到包含对象的数组,您只需使用筛选函数,无需使用索引器
var-arr=[
{id:1,名称:“某物”},
{id:2,名称:“something1”},
{id:3,名字:“something2”},
{id:4,名字:“something3”},
{id:5,名字:“something4”}
]
变量id=3
var obj=阵列滤波器(功能(obj){
返回obj.id==id;
})
console.log(obj[0].name)
考虑到包含对象的数组,您只需使用筛选函数,无需使用索引器
var-arr=[
{id:1,名称:“某物”},
{id:2,名称:“something1”},
{id:3,名字:“something2”},
{id:4,名字:“something3”},
{id:5,名字:“something4”}
]
变量id=3
var obj=阵列滤波器(功能(obj){
返回obj.id==id;
})
console.log(obj[0].name)
我认为您的问题在于将名称与id进行比较。如果要避免循环:
// This find the correct entry corresponding to the id you are looking for
var correctField = this.customFields.find(function(field) {
return field.id === field_id;
});
// Then you get the name from the entry
var nameToFind = correctField && correctField.name;
根据您的浏览器支持,您可能必须替换“查找”
替换它的方法:
this.customFields.filter()[0]我认为您的问题在于将名称与id进行比较。如果要避免循环:
// This find the correct entry corresponding to the id you are looking for
var correctField = this.customFields.find(function(field) {
return field.id === field_id;
});
// Then you get the name from the entry
var nameToFind = correctField && correctField.name;
根据您的浏览器支持,您可能必须替换“查找”
替换它的方法:
this.customFields.filter()[0]您只需对循环使用
,如下所示
var arr = [{id:1,name:"abc"},{id:2,name:"pqr"},{id:3,name:"lmn"}]
function getName(id){
for(var i=0;i<arr.length;i++)
if(arr[i].id==id)
return arr[i].name;
return null
}
getName(2);// pqr
var arr=[{id:1,名称:“abc”},{id:2,名称:“pqr”},{id:3,名称:“lmn”}]
函数getName(id){
对于(var i=0;i您可以简单地使用for loop
,如下所示
var arr = [{id:1,name:"abc"},{id:2,name:"pqr"},{id:3,name:"lmn"}]
function getName(id){
for(var i=0;i<arr.length;i++)
if(arr[i].id==id)
return arr[i].name;
return null
}
getName(2);// pqr
var arr=[{id:1,名称:“abc”},{id:2,名称:“pqr”},{id:3,名称:“lmn”}]
函数getName(id){
对于(var i=0;ivar search=36;对于(var i=0;iHi Simon),问题是我不能做array.length。如果我做array[0].length()我就可以做不要使用Array.prototype.filter
并提取你也可以使用的第一个元素。为什么你不能使用Array.length?如果它是一个对象数组,它应该可以工作(好像它没有什么严重错误)…我假设你有像var Array=[{id:36},{id:35}];length不是一个函数,因此对于array#of items,使用.length
var search=36;对于(var i=0;iHi Simon,问题是我不能使用array.length。如果使用array[0],我就可以使用它。length()不要使用Array.prototype.filter
并提取你也可以使用的第一个元素。为什么你不能使用Array.length?如果它是一个对象数组,它应该可以工作(好像它没有什么严重错误)…我假设你有像var Array=[{id:36},{id:35}];长度不是一个函数,因此对于数组#项使用.length