📜  JavaScript 中的 Object.entries()

📅  最后修改于: 2022-05-13 01:58:10.499000             🧑  作者: Mango

JavaScript 中的 Object.entries()

JavaScript 中的对象和对象构造函数?

在面向对象编程的现实世界中,我们已经知道类和对象的重要性,但与其他编程语言不同,JavaScript 没有其他语言中看到的传统类。但是 JavaScript 有对象和构造函数,它们大多以相同的方式执行相同类型的操作。

  • 构造函数是与“new”关键字一起使用的通用 JavaScript 函数。 JavaScript 中的构造函数有两种类型,即内置构造函数(数组和对象)和自定义构造函数(为特定对象定义属性和方法)。
  • 当我们需要一种方法来创建可以多次使用的对象“类型”而不必每次都重新定义对象时,构造函数会很有用,这可以使用对象构造函数来实现。

将构造函数的名称大写以将它们与常规函数区分开来是一种惯例。
例如,考虑以下代码:

function Automobile(color) {
  this.color=color;
}

var vehicle1 = new Automobile ("red");

函数“Automobile()”是一个对象构造函数,它的属性和方法,即“color”是通过在它的前面加上关键字“this”来声明的。使用对象构造函数定义的对象然后使用关键字“new”成为即时对象。

当 new Automobile() 被调用时,JavaScript 做了两件事:

  1. 它创建一个新的对象(实例)汽车()并将其分配给一个变量。
  2. 它将对象的构造函数属性(即“颜色”)设置为汽车。

Object.entries() 方法
Object.entries() 方法用于返回一个数组,该数组由作为参数传递的对象的可枚举属性 [key, value] 对组成。属性的顺序与通过手动循环对象的属性值给出的顺序相同。
Object.entries() 和 Object.values() 方法之间的区别

JavaScript 中的 Object.entries() 方法返回一个数组,该数组由作为参数传递的对象的可枚举属性 [key, value] 对组成,而 JavaScript 中的 Object.values() 方法返回一个数组,其元素是找到的可枚举属性值物体上。请按照以下示例更好地理解这两个函数之间的差异。

Input: var object = { 0: '23', 1: 'geeksforgeeks', 2: 'true' };
       console.log(Object.values(object));
       console.log(Object.entries(object));

Output: Array ["23", "geeksforgeeks", "true"]
        Array [["0", "23"],  ["1", "geeksforgeeks"],["2", "true"]]

说明:在上面的示例中,创建了一个对象,其中包含三个 [key, value] 对,并且 object.entries() 方法返回对象的 [key, value] 对,而 object.values() 方法返回找到的值物体。

应用:

  • Object.entries() 用于列出与对象相关的属性。
  • Object.entries() 用于列出对象的所有 [key,value] 对。

句法:

Object.entries(obj)

下面提供了上述函数的示例。

例子:

Input : const obj = { 0: 'adam', 1: 'billy', 2: 'chris' };
        console.log(Object.entries(obj)[1]);

Output : Array ["1", "billy"]

说明:在本例中,创建了一个对象“obj”,其中包含三个属性 [key, value] 对,并且 Object.entries() 方法用于返回对象的第一个属性 [key, value] 对。

Input : const obj = { 10: 'adam', 200: 'billy', 35: 'chris' };
        console.log(Object.entries(obj)); 

Output : Array [ ["10", "adam"], ["35", "chris"], ["200", "billy"]]

说明:在本例中,创建了一个对象“obj”,其中包含三个 property[key, value] 对,并且 Object.entries() 方法用于返回该对象的所有 property [key, value] 对。

下面提供了上述函数的代码。

代码 1:


输出 :

Array ["1", "billy"]

代码 2:


输出 :

Array [["10", "adam"], ["35", "chris"],["200", "billy"]]

例外:

  • 如果传递的参数不是 object ,则会导致 TypeError。
  • 如果参数中传递的键不在 property[key, value] 对的范围内,则会导致 RangeError。

支持的浏览器:

  • 铬 54 及以上
  • 边缘 14 及以上
  • 火狐 47 及以上
  • Opera 41 及以上
  • Safari 10.1 及更高版本

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries