Javascript double for循环不获取返回数据
为什么我的代码不是Javascript double for循环不获取返回数据,javascript,Javascript,为什么我的代码不是count var a = { count: [{label:'a', value: 'a'}], next: [{label:'b', value: 'b'}], previous: [{label:'c', value: 'c'}], } function get_item() { var x = "a" for (let item in a){ a[item].forEach(obj => { console.log(o
count
var a = {
count: [{label:'a', value: 'a'}],
next: [{label:'b', value: 'b'}],
previous: [{label:'c', value: 'c'}],
}
function get_item() {
var x = "a"
for (let item in a){
a[item].forEach(obj => {
console.log(obj.value, x )
if(obj.value === x) {
return item
}
})
}
}
console.log(get_item())
控制台日志如下所示:
a a
b a
c a
undefined
您可以看到
a
,但为什么它不显示,是因为计数,而不是未定义的?这样更改您的函数
var a={
计数:[{标签:'a',值:'a'}],
下一步:[{标签:'b',值:'b'}],
上一个:[{label:'c',value:'c'}],
}
函数get_item(){
var x=“w”
var retItem=未定义
用于(将项目放在a中){
a[item].forEach(obj=>{
如果(对象值===x){
retItem=项目
}
})
}
返回项;
}
console.log(get_item())
下面的解决方案可能适合您:
var a = {
count: [{label:'a', value: 'a'}],
next: [{label:'b', value: 'b'}],
previous: [{label:'c', value: 'c'}]
}
function get_item() {
var x = "a"
for (let item in a){
let resultItem = a[item].find((obj)=>{ return obj.value === x });
if(resultItem) return item //you can also return 'resultItem';
}
}
console.log(get_item())
预期的计数值是多少?forEach
不返回任何内容。因此,不考虑任何返回值。使用.find
或.filter
返回一个[item]。foreach是否希望一旦此条件“if(obj.value==x){”为true,它返回之前未执行?可能只是一个指针的重复,get_item
应返回对象|未定义
。返回“无结果…”
应由使用它的函数处理。