最近在node中使用?.可选链运算符, 报错了,(Obj层级深时,避免多层if判断)
查了了一下是因为node的版本号太低了(12.18.2),需要升级到14以上才能使用可选链运算符
那如果不想升级node版本呢?问了一下chatGPT,给出了解决方法:
使用Lodash
const _ = require('lodash');
const obj = {
a: {
b: {
c: 123
}
}
};
const value = _.get(obj, 'a.b.c');
const value2 = _.get(obj,'d.e') // 也不会抛出错误 而是undefined
console.log(value); // 输出 123
在前端的一些流行框架和原生开发中也可以使用 Lodash。Lodash 是一个跨平台的 JavaScript 工具库,可以在 Node.js、浏览器以及其他 JavaScript 运行环境中使用。
在前端的流行框架中,例如 React、Angular 和 Vue 等,都可以使用 Lodash 中的实用方法来处理数据。例如,可以使用 Lodash 的 get
方法来获取嵌套对象中的属性值,使用 map
方法来遍历数组并对其进行转换,使用 filter
方法来过滤数组等等。
同时,在原生的 JavaScript 开发中,Lodash 也是一个非常有用的工具库。例如,可以使用 Lodash 的 debounce
方法来防抖动输入框的输入事件,使用 throttle
方法来节流滚动事件等等。
lodash文档:https://lodash.com/