gpt4 book ai didi

javascript - 相当于 Lodash _.get 和 _.has 的下划线

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:18 31 4
gpt4 key购买 nike

我正在尝试为 Lodash _.get_.has 搜索等效的 Underscore,它能够直接访问嵌套对象的存在和值值而不需要检查其 parent 的存在。

但是,在我看来,下划线 _.get_.has 只能检查第一级的值。

var object = { 'a': { 'b': 2 } };
_.has(object, 'a.b'); // lodash shows true
_.has(object, 'a.b'); // underscore shows false

最佳答案

据我所知,undercore 不执行深度搜索,因此您必须满足于浅层 hasget(或更改为 lodash) .

你也可以尝试自己实现(你可以查看lodash的实现并尝试复制它或者想出你自己的解决方案)。

这是has 问题的简单解决方案(get 类似),使用递归和当前下划线has 的实现.

希望对您有所帮助。

var a = {
a: 1,
b: {
a: { c: { d: 1 }}
}
};

var hasDeep = function(obj, path) {
if(!path) return true;

var paths = path.split('.'),
nPath = _.first(paths);
return _.has(obj, nPath) && hasDeep(obj[nPath], _.rest(paths).join('.'));
}

console.log(hasDeep(a, 'b.a.c.d'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>

关于javascript - 相当于 Lodash _.get 和 _.has 的下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42042245/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com