const value = _.get(obj, key); _.set(obj, key, value); 这是啥意思 _ 是什么意思?

在这段代码中,_ 通常是 Lodash 库的引用。Lodash 是一个非常实用的 JavaScript 工具库,提供了许多用于处理数组、对象、字符串等数据类型的便捷方法。下面详细解释代码中 _.get_.set 方法的含义以及整段代码的作用。

_ 的含义

在 JavaScript 代码里,_ 是一个常见的变量名,用于引用 Lodash 库。一般在引入 Lodash 库之后,会将其赋值给 _ 变量,示例如下:

// 使用 CommonJS 模块引入 Lodash
const _ = require('lodash');

// 或者在 ES6 模块中引入
import _ from 'lodash';

_.get 方法

_.get 方法用于从对象中安全地获取属性值。即使对象的属性路径中存在 nullundefined,也不会抛出错误,而是返回 undefined 或者指定的默认值。

语法

_.get(object, path, [defaultValue])
  • object:要从中获取属性值的对象。
  • path:要获取的属性的路径,可以是字符串或数组。
  • [defaultValue]:可选参数,如果指定路径的属性不存在,则返回该默认值。

示例代码

const item = {
  user: {
    name: 'John',
    age: 30
  }
};
const attrType = 'user.name';
const value = _.get(item, attrType);
console.log(value); // 输出: John

在这个例子中,_.get(item, attrType) 会从 item 对象中获取 user.name 属性的值。

_.set 方法

_.set 方法用于给对象的指定路径设置值。如果路径中的某些属性不存在,会自动创建这些属性。

语法

_.set(object, path, value)
  • object:要设置属性值的对象。
  • path:要设置的属性的路径,可以是字符串或数组。
  • value:要设置的值。

示例代码

const attrs = {};
const attrType = 'user.name';
const value = 'John';
_.set(attrs, attrType, value);
console.log(attrs); // 输出: { user: { name: 'John' } }

在这个例子中,_.set(attrs, attrType, value) 会在 attrs 对象中创建 user.name 属性,并将其值设置为 'John'

整段代码的含义

const value = _.get(item, attrType);
_.set(attrs, attrType, value);

这段代码的作用是从 item 对象中获取 attrType 指定路径的属性值,然后将这个值设置到 attrs 对象的相同路径下。可以将其理解为属性值的复制操作,从一个对象复制到另一个对象。例如:

const _ = require('lodash');

const item = {
  user: {
    name: 'John',
    age: 30
  }
};
const attrs = {};
const attrType = 'user.name';

const value = _.get(item, attrType);
_.set(attrs, attrType, value);

console.log(attrs); // 输出: { user: { name: 'John' } }

在这个例子中,item 对象中的 user.name 属性值被复制到了 attrs 对象的相同路径下。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容