Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从对象数组中查找name属性_Javascript_Arrays_Object_Dictionary - Fatal编程技术网

Javascript 如何从对象数组中查找name属性

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

我试图从给定id的对象数组中获取值,但无法使其正常工作。问题是我有一个对象数组,所以我不知道如何迭代它们。我知道使用.map方法可能是一个可行的解决方案,但我对这方面还不熟悉

我的方法是,给定一个Id,它必须返回同一对象的名称。

我怎样才能重复它们?我实际上在用这个:

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