Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 遍历Json对象数组的函数需要返回一个对象_Javascript_Arrays_Function_Object - Fatal编程技术网

Javascript 遍历Json对象数组的函数需要返回一个对象

Javascript 遍历Json对象数组的函数需要返回一个对象,javascript,arrays,function,object,Javascript,Arrays,Function,Object,所以我不是最擅长写函数的,所以我很难理解这一点。所以我试图创建一个函数,它遍历对象数组,一旦它读取给定的名称,它就会停止,它必须返回那个人的号码 const array = [{name: 'Ann', phone: '575.580.1400', role: 'Developer'}, {name: 'Ben', phone: '575.641.4041', role: 'Manager'}, {name: 'Clara', phon

所以我不是最擅长写函数的,所以我很难理解这一点。所以我试图创建一个函数,它遍历对象数组,一旦它读取给定的名称,它就会停止,它必须返回那个人的号码

const array = [{name: 'Ann', phone: '575.580.1400', role: 'Developer'},
               {name: 'Ben', phone: '575.641.4041', role: 'Manager'},
               {name: 'Clara', phone: '512.717.5690', role: 'Developer'}];

const getNumber = (person, book ) => {
      for (var x of book ) {
          if( x == person) {
             return number;}
     return ('Not found'); 
     }
}

我知道我不知道如何拨打这个号码,但我就是想不起怎么做。

首先你需要访问对象内部的密钥,然后
返回('notfound')不在正确的位置。其次,如果函数仅在第一次迭代中返回,请在代码中使用
===
而不是
==
。因为如果搜索
Clara
并且在
if
条件中
Ann
将不等于
Clara
,因此它将返回
notfound
,并且不会迭代剩余的数组

const数组=[{
名字:“安”,
电话:“575.580.1400”,
角色:“开发人员”
},
{
名字:“本”,
电话:'575.641.4041',
角色:“经理”
},
{
姓名:“克拉拉”,
电话:'512.717.5690',
角色:“开发人员”
}
];
const getNumber=(个人、书籍)=>{
for(账簿的变量x){
如果(x.name==个人){
返回x.phone;
}
}
返回(“未找到”);
}

log(getNumber('Clara',array))
下面的代码有助于迭代JSON对象并打印所需的值。您可以在IF中使用所需的条件,并相应地打印所需的值

 var json = [{name: 'Ann', phone: '575.580.1400', role: 'Developer'},
           {name: 'Ben', phone: '575.641.4041', role: 'Manager'},
           {name: 'Clara', phone: '512.717.5690', role: 'Developer'}];

for (var key in json) {
   if (json.hasOwnProperty(key)) {
   if(json[key].name=='Ben')
      
      console.log(json[key].phone);
   }
}
试试这个

我使用了一些而不是foreach或其他循环。some()方法对数组中存在的每个元素执行一次回调函数,直到找到回调返回真实值的元素为止

const getNumber = (person, book ) => { 
      let pnumber;
      book.some((item) => {
        if(item.name.toLowerCase()===person.toLowerCase()){
            pnumber = item.phone;
            return true;
             }
         })
      return pnumber ? pnumber: "Not Found" ;
     }
你可以这样称呼它

getNumber('clara',array)
"512.717.5690"

getNumber('ben1',array)
"Not Found"

x
是数组中的对象,您可以使用
x.name
访问名称键,与编号相同:
x.number
让foundPerson=array.filter((person)=>person.name==name);