我想使用lodash在特定数组元素处查找对象的属性.

假设我点击一个api并得到响应,该响应将其设置为react 状态"personsDetails"(其初始值为null),因此现在它变为

let personsDetails=[{name:'king',id:2},{name:'queen',id:3}] //sometimes i get 1 object and sometimes 2

现在,当我想访问第二个对象的"name"属性时,我会这样做

personsDetails && personsDetails[1] && personsDetails[1].name

那么,使用lodash访问它是否有任何简短的语法?如果值不存在,则需要null

据我所知,get属性只适用于object,所以这里我处理的是数组,然后是object

推荐答案

您仍然可以使用get并将默认值设置为null

let personsDetails=[{name:'king',id:2},{name:'queen',id:3}] 
let res = _.get(personsDetails, '1.name',null) //or _.get(personsDetails, '[1].name',null)
console.log(res)

console.log(_.get(undefined, '1.name',null))
console.log(_.get([], '1.name',null))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

或者可以使用nthget,并将默认值设置为null

let personsDetails=[{name:'king',id:2},{name:'queen',id:3}] 

let res = _.get(_.nth(personsDetails,1),'name',null)
console.log(res)

console.log(_.get(_.nth([],1),'name',null))
console.log(_.get(_.nth(undefined,1),'name',null))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js"></script>

Javascript相关问答推荐

模块与独立组件

docx.js:如何在客户端使用文档修补程序

引用在HTMLAttributes<;HTMLDivElement>;中不可用

如何从隐藏/显示中删除其中一个点击?

Ember.js 5.4更新会话存储时如何更新组件变量

如何在文本字段中输入变量?

如何将多维数组插入到另一个多维数组中?

React.Development.js和未捕获的ReferenceError:未定义useState

在FAQ Accodion应用程序中使用React useState时出现问题

使用Document.Evaluate() Select 一个包含撇号的HTML元素

react -原生向量-图标笔划宽度

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

React Refs不与高阶组件(HOC)中的动态生成组件一起工作

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

如何用react组件替换dom元素?

Rails 7:在不使用导入映射的情况下导入Java脚本

使用onClick单击子元素时,使用交点观察器的关键帧动画意外运行

:host::ng-Deep不将样式应用于material 复选框

鼠标进入,每秒将图像大小减小5%

元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但GET:Object.在Reaction项目中