JS ----- 常用Object

什么是Object

Object是 JavaScript 的一种数据类型。它用于存储各种键值集合和更复杂的实体。可以通过Object()构造函数或者使用对象字面量的方式创建对象。

在JS中,几乎所有的对象都是 Object 的实例。

创建(声明)对象

// 创建一个新对象 
let obj = new Object();
obj.value = 666;
console.log(obj);
// { value: 666 }
console.log(obj.value);
// 666
console.log(typeof obj);
// object
  //new Object构造函数方式
  let person = new Object();
  person.name = 'Tom';
  person.age = 20;
  console.log(person.name);
  // Tom
  console.log(person['name']);
  // Tom


  // 或
  //对象字面量
  let person = {
    name:'Tom',
    age:20
  };  
  console.log(person.name);
  // Tom
  console.log(person['name']);
  // Tom

静态方法

Object.assign()

Object.assign(target, ...source)

参数

target

    源数据,修改后作为返回值

source

        一个或多个包含要应用属性的对象    

示例

const obj = { key: value };
const copy = Object.assign({}, obj);
console.log(copy);
// { key: value }

Object.create()

Object.create(proto)

参数

        proto

        新创建对象的原型对象

const person = {
  age: 18,
  printIntroduction: function () {
    console.log(`我的名字是 ${this.name}. 今年 ${this.age}岁了`);
  },
};

const me = Object.create(person);

me.name = 'Tom';
// name 是设置在 me 上的属性
me.age = 20; 
// 继承的属性可以被覆盖

me.printIntroduction();
//我的名字是Tom,今年20岁了

Object.entries()

返回一个二维数组,每个元素包含给定对象自有的可枚举属性的键值对。

Object.entries(obj)
// obj 一个对象
const obj = {
  a: 'helloWorld',
  b: 2024,
};
console.log(Object.entries(obj));
// [["a", "helloWorld"],["b", 2024]]

Object.fromEntries()

将键值对[key, value]转换为对象

Object.fromEntries(iterable)

参数

        iterable

        一个包含对象列表的可迭代对象,例如 Array 或者 Map。每个对象都要有两个属性 : 

                0 : 表示属性键的字符串或者 Symbol

                1 : 属性值。

        通常,该对象被实现为二元数组,第一个元素是属性键,第二个元素是属性值。

// 将Array转成对象
const arr1 = [
    ['a','H'],
    ['b','E'],
    ['c','L'],
    ['d','L'],
    ['e','O']
];
console.log(Object.fromEntries(arr1));
// { a:'H', b:'E', c:'L', d:'L', e:'O' }

 
// 将Map转成对象
const arr2 = new Map([
    ['aa','W'],
    ['bb','O'],
    ['cc','R'],
    ['dd','L'],
    ['ee','D']
]);
console.log(Object.fromEntries(arr3)); 
// { aa:'W', bb:'O', cc:'R', dd:'L', ee:'D' }


// 对象转换
// 需结合 Object.entries() 和 数组操作方法
const obj1 = { a: 1, b: 2, c: 3 };
const obj2 = Object.fromEntries(
  Object.entries(obj1).map(([key, val]) => [key, val * 2]),
);

console.log(obj2);
// { a: 2, b: 4, c: 6 }

Object.is()

确定两个值是否为相同值。所有 NaN 值都相同,与 == 使用的 IsLooselyEqual 和 === 使用的 IsStrictlyEqual 不同

Object.is(value1, value2)

Object.keys()

返回一个包含所有给定对象自有可枚举字符串属性名称的数组。

Object.keys(obj)
const obj = {
  a: 'helloWorld',
  b: 2024,
  c: false,
};

console.log(Object.keys(obj));
// ["a", "b", "c"]

 与 Object.entries() 区别:Object.entries() 返回的是一个二维数组[[key, value], [key, value]],Object.keys() 返回的是只包含属性的一维数组

Object.values()

返回包含给定对象所有自有可枚举字符串属性的值的数组。

Object.values(obj)
const obj = {
  a: 'helloWorld',
  b: 2024,
  c: false,
};

console.log(Object.values(object1));
// ["helloWorld", 2024, false]

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值