Skip to content

Object 对象

crush 压碎

  • 基础用法

将深层对象压平为单一维度,深层次将在对象中转换为浮点号表示法

js
const testobj1 = () => {
  const testobjall = {
    name: "ra",
    power: 100,
    friend: {
      name: "loki",
      power: 80,
      children: [
        {
          name: "孙子",
          age: 30,
        },
      ],
    },
    enemies: [
      {
        name: "hathor",
        power: 12,
      },
    ],
  };
  console.log(_.crush(testobjall));
  /* 
    {
    "name": "ra",
    "power": 100,
    "friend.name": "loki",
    "friend.power": 80,
    "friend.children.0.name": "孙子",
    "friend.children.0.age": 30,
    "enemies.0.name": "hathor",
    "enemies.0.power": 12
    }
  */
};

get 获取

  • 基础用法

获取对象中的值,如果不存在则返回默认值

js
const testobj2 = () => {
  const fish = {
    name: "Bass",
    weight: 8,
    sizes: [
      {
        maturity: "adult",
        range: [7, 18],
        unit: "inches",
      },
    ],
  };
  console.log(_.get(fish, "sizes[0].maturity")); // "adult"
  console.log(_.get(fish, "sizes[0].range[1]")); // 18
  console.log(_.get(fish, "sizes.0.range.1")); // 18
  console.log(_.get(fish, "foo", "初始值")); // ''
};

reverse

键值反转

js
/* 反转 */
const testobj3 = () => {
  const powersByGod = {
    ra: "sun",
    loki: "tricks",
    zeus: "lighning",
  };
  console.log(_.invert(powersByGod));
  /* 
  {
    "sun": "ra",
    "tricks": "loki",
    "lighning": "zeus"
  }
*/
};

keys

获取深层次的键

无论多少层 获取键

js
const getAllKeys = () => {
  const ra = {
    name: "ra",
    power: 100,
    friend: {
      name: "loki",
      power: 80,
      children: [
        {
          test: "深层次的建委",
        },
      ],
    },
    enemies: [
      {
        name: "hathor",
        power: 12,
      },
    ],
  };
  console.log(_.keys(ra));
};
// 结果
/*
[
    "name",
    "power",
    "friend.name",
    "friend.power",
    "friend.children.0.test",
    "enemies.0.name",
    "enemies.0.power"
]
*/

upperize

对象属性大写

js
const testobj4 = () => {
  const ra = {
    Mode: "god",
    Power: "sun",
  };
  console.log(_.lowerize(ra));
};
/* 结果
{
    "MODE": "god",
    "POWER": "sun"
}
*/

lowerize

对象属性小写化

js
const testobj4 = () => {
  const ra = {
    Mode: "god",
    Power: "sun",
  };
  console.log(_.lowerize(ra));
};
/*
 {
    "mode": "god",
    "power": "sun"
}
*/

omit

忽略掉不要的属性

js
/* 省略 不要的属性 */
const testobj5 = () => {
  const fish = {
    name: "Bass",
    weight: 8,
    source: "lake",
    brackish: false,
  };
  console.log(_.omit(fish, ["name", "source"]));
};
/* 结果
 {
    "weight": 8,
    "brackish": false
}
*/

pick

只保留需要的属性

js
/* 只保留需要的属性 */
const testobj6 = () => {
  const fish = {
    name: "Bass",
    weight: 8,
    source: "lake",
    brackish: false,
  };
  console.log(_.pick(fish, ["name", "source"]));
};
/* 结果
 {
    "name": "Bass",
    "source": "lake"
}
*/

set

设置对象中的值

js
const testobj7 = () => {
  const fish = {
    name: "Bass",
    weight: 8,
    source: "lake",
    brackish: false,
  };
  const result = _.set(fish, "ceshi", "测试");
  const result2 = _.set(fish, "ceshi.children.0.name", "测试孩子行不行");
  console.log(result); // 新创建的
  console.log(result2);
};
/* 结果
{
    "name": "Bass",
    "weight": 8,
    "source": "lake",
    "brackish": false,
    "ceshi": "测试"
}
*/
/* result2 结果

{
    "name": "Bass",
    "weight": 8,
    "source": "lake",
    "brackish": false,
    "ceshi": {
        "children": [
            {
                "name": "测试孩子行不行"
            }
        ]
    }
}

*/