如何解决遍历Json对象数组的函数需要返回一个对象
所以我并不是最擅长编写函数,所以我很难解决这个问题。因此,我试图创建一个遍历对象数组的函数,并在读取给定名称后停止并返回该人员的编号。
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');
}
}
我知道我不知道怎么打号码,但我只是想不起来怎么做。
解决方法
首先,您需要访问对象内部的键,并且newlist
不在正确的位置。其次,使用return ('Not found');
而不是===
。在代码中,如果函数仅在第一次迭代中返回。因为如果您搜索==
并在Clara
条件下,if
将不等于Ann
,所以它将返回Clara
并且不会迭代其余数组
Not Found
或者,您也可以使用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.name === person) {
return x.phone;
}
}
return ('Not found');
}
console.log(getNumber('Clara',array))
或find
之类的数组方法
filter
,
以下代码有助于迭代JSON对象并打印所需的值。您可以在IF中使用所需的条件,并相应地打印所需的值。
<script>
function setSrc(i) {
let mysrc =
[ "D:\\pics\\cubered.png","D:\\pics\\cubegreen.png","D:\\pics\\cubeblue.png","D:\\pics\\cubeyellow.png"]
document.getElementById("image").src = mysrc[i];
}
//const btn1=document.getElementById("btn1");
//btn1.addEventListener("click",setSrc);
</script>
<figure class = "imgContainer">
<img class = "image" id = "image" src = " " alt = "activeimage">
<div class = "buttonsContainer" id = "btctn1">
<div class = "button" id = "btn1" onclick=setSrc(0)>BTN 1</div>
<div class = "button" id = "btn2" onclick=setSrc(1)>BTN 2</div>
<div class = "button" id = "btn3" onclick=setSrc(2)>BTN 3</div>
<div class = "button" id = "btn4" onclick=setSrc(3)>BTN 4</div>
</div>
<script>setSrc(0);</script>
,
尝试一下
我正在使用一些而不是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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。