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
应返回
对象|未定义
。返回
“无结果…”
应由使用它的函数处理。