JavaScript中常用处理对象的方法

一.方法

Object.keys(obj)

返回一个包含对象自身所有属性名称的数组。

let person = {
  firstName: "John",
  lastName: "Doe"
};
let keys = Object.keys(person);
console.log(keys); // 输出: ["firstName", "lastName"]

Object.values(obj)

返回一个包含对象自身所有属性值的数组。

let values = Object.values(person);
console.log(values); // 输出: ["John", "Doe"]

Object.entries(obj)

返回一个包含对象自身所有属性的键值对(数组形式)的数组。

let entries = Object.entries(person);
console.log(entries); // 输出: [["firstName", "John"], ["lastName", "Doe"]]

Object.assign(target, source1, source2, ...)

将一个或多个源对象的属性复制到目标对象中。

let target = {};
let source = { firstName: "John", lastName: "Doe" };
Object.assign(target, source);

console.log(target); // 输出: { firstName: "John", lastName: "Doe" }

Object.hasOwnProperty(prop)

检查对象自身是否具有指定属性。

console.log(person.hasOwnProperty("firstName")); // 输出: true
console.log(person.hasOwnProperty("age")); // 输出: false

Object.getOwnPropertyNames(obj)

返回一个包含对象自身所有属性名称的数组,包括不可枚举属性。

let propertyNames = Object.getOwnPropertyNames(person);
console.log(propertyNames); // 输出: ["firstName", "lastName"]

 detele删除属性

let person = {
  firstName: "John",
  lastName: "Doe",
  age: 30
};

// 删除对象的一个属性
delete person.age;

console.log(person); // 输出: { firstName: "John", lastName: "Doe" }

如果不想改变原对象的属性我们可以这样做

let person = { firstName: "John", lastName: "Doe", age: 30 };

const {firstName,lastName}=person

const newperson={firstName,lastName}

console.log(newperson)// 输出: { firstName: "John", lastName: "Doe" }

二.不可枚举属性

在JavaScript中,对象的属性可以分为可枚举属性和不可枚举属性。可枚举属性是可以通过循环或其他遍历方法遍历出来的属性,而不可枚举属性则不会被遍历出来。默认情况下,大部分对象属性都是可枚举的。

不过,有些属性可能不适合被遍历,或者是一些内部属性,因此可以将它们设置为不可枚举属性。在 JavaScript 中,你可以使用 Object.defineProperty()Object.defineProperties() 方法来定义不可枚举属性。

let person = {
  firstName: "John",
  lastName: "Doe"
};

Object.defineProperty(person, "age", {
  value: 30,
  enumerable: false // 将属性设置为不可枚举
});

//对象遍历
for (var prop in person) {
  console.log(prop); // 输出: "firstName" 和 "lastName"
}

console.log(Object.keys(person)); // 输出: ["firstName", "lastName"]

age 属性被设置为不可枚举,所以在使用 for...in 循环或 Object.keys() 方法遍历对象时,age 属性不会被列出。

你可能感兴趣的:(javascript,开发语言,ecmascript)