JavaScript深入理解对象方法——Object.entries()

news/2024/5/22 0:52:26

Object.entries()

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环也枚举原型链中的属性)。

语法

Object.entries(obj)

参数

  • obj
    可以返回其可枚举属性的键值对的对象。

返回值

给定对象自身可枚举属性的键值对数组。

描述

Object.entries()返回一个数组,其元素是与直接在object上找到的可枚举属性键值对相对应的数组。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。

示例

const obj = { foo: 'bar', baz: 42 };
console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]// array like object
const obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.entries(obj)); // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]// array like object with random key ordering
const anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.entries(anObj)); // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]// getFoo is property which isn't enumerable
const myObj = Object.create({}, { getFoo: { value() { return this.foo; } } });
myObj.foo = 'bar';
console.log(Object.entries(myObj)); // [ ['foo', 'bar'] ]// non-object argument will be coerced to an object
console.log(Object.entries('foo')); // [ ['0', 'f'], ['1', 'o'], ['2', 'o'] ]// iterate through key-value gracefully
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}// Or, using array extras
Object.entries(obj).forEach(([key, value]) => {
console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
});

Object转换为Map

new Map() 构造函数接受一个可迭代的entries。借助Object.entries方法你可以很容易的将Object转换为Map:

var obj = { foo: "bar", baz: 42 }; 
var map = new Map(Object.entries(obj));
console.log(map); // Map { foo: "bar", baz: 42 }

Polyfill

你可以使用下面列出的简易 polyfill。

if (!Object.entries)Object.entries = function( obj ){var ownProps = Object.keys( obj ),i = ownProps.length,resArray = new Array(i); // preallocate the Arraywhile (i--)resArray[i] = [ownProps[i], obj[ownProps[i]]];return resArray;};

http://lihuaxi.xjx100.cn/news/249713.html

相关文章

[python] 从GPS坐标获取国家名

目标比较明确,就是从GPS坐标得到它所在的国家。网上可以找的比较典型的解决方案是利用一些网站(例如Google)的webservice来完成这个任务,但是这些解决方案有一个比较大的弱点,就是这些webservice会限制请求的次数&…

【编程题】【Scratch三级】2019.06 打气球游戏

打气球游戏 1.准备工作 (1)角色“Wand”,“Balloon1”; (2)默认白色背景。 2.功能实现 (1)程序开始,魔法棒在舞台的底部不停左右移动; (2)如果按空格键,魔法棒垂直向上发射; (3)程序开始,5个气球水平排练在舞台上方(请使用克隆),不可以直接添加5个气…

PCM数据格式

2019独角兽企业重金招聘Python工程师标准>>> 1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22…

AlexNet 网络详解及Tensorflow实现源码

版权声明:本文为博主原创文章,未经博主允许不得转载。 1. 图片数据处理2. 卷积神经网络 2.1. 卷积层2.2. 池化层2.3. 全链层3. AlexNet4. 用Tensorflow搭建完整的AlexNet5. 用AlexNet识别猫狗图片 5.1. 定义分类5.2. 训练网络5.3. 验证1. 图片数据处理 一…

VB6基本数据库应用(五):数据的查找与筛选

同系列的第五篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9633139 数据的查找与筛选 第4篇发布到现在已经过了4天,很抱歉,学生党,还是悲催的高三,没办法,8月1就开学了。以后…

oracle update from多表性能优化一例

这几天测试java内存数据库,和oracle比较时发下一个update from语句很慢,如下: update business_newset fare1_balance_ratio (select BALANCE_RATIO from bfare2where bfare2.exchange_type business_new.exchange_type andbfa…

同步你的手机联系人

从web1.0到2.0,我们进入了一个新的互联网时代移动时代.相信你的手机中,有许多联系人信息,你肯定不想把他们弄丢吧,像我之前隔一段时间就备份下,存到电脑中.现在再也不怕联系人信息丢了,只需要一个账户,同步一下,所有联系人信息都回来了.我是在Android智能手机上操作的,IOS就不清…

写了六个相同功能的函数之后,我学到了什么

本文讲的是写了六个相同功能的函数之后,我学到了什么,几周之前,一个社区在 Free Code Camp’s Forum 上发起了非官方的算法大赛。 这个题目看似很简单:返回小于数字 N 的所有 3 或者 5 的倍数的和,N 是函数的参数。 但…