可以用lodash从带有嵌套对象的对象中获取var名称吗

can you get var name from object with nested objects with lodash?

本文关键字:对象 获取 var 嵌套 lodash      更新时间:2023-09-26

https://jsfiddle.net/adamchenwei/Lyg2jy61/7/

已解决版本:https://jsfiddle.net/adamchenwei/Lyg2jy61/10/

由于某种原因,findKey的父级顶级得到了undefined我的目标是用lodash得到结果="myName";

    var obj = {
    	myName: {
      	Adam: 'Man',
      },
      herName: {
      	Eve: 'Woman',
      },
    };
    
    var result = _.findKey(obj, '0'); //as you can see somehow its undefined!
    
    var result2 = _.findKey(obj.myName, '0');
    
    console.log(result);//objective is to get the result = 'myName' with lodash;
    
    console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

看起来您实际上想要做的是获取对象的第一个键。要获取对象的关键帧,可以使用_.keys。然后只取回第一个。

var obj = {
  myName: {
    Adam: 'Man',
  },
  herName: {
    Eve: 'Woman',
  },
};
console.log(_.keys(obj)[0]);
// Or if you want to do it exclusively with lodash functions
console.log(_.first(_.keys(obj)));
// or
console.log(_.head(_.keys(obj)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.16.4/lodash.min.js"></script>

目前还不清楚你到底想要什么,但在你发布的对象上使用_.findKey会像这样工作:

https://jsfiddle.net/Lyg2jy61/8/

var obj = {
    myName: {
        Adam: 'Man',
    },
    herName: {
        Eve: 'Woman',
    }
};
console.log(_.findKey(obj, function(o) { return !!o.Adam; }));

如果您只想要第一个密钥:_.keys(obj)[0]