首页 > 编程语言 >simpread-获取 JavaScript 对象的键 _ D 栈 - Delft Stack

simpread-获取 JavaScript 对象的键 _ D 栈 - Delft Stack

时间:2022-11-10 11:57:38浏览次数:66  
标签:JavaScript console log keys Object 对象 entries Delft Stack

本文由 简悦 SimpRead 转码, 原文地址 www.delftstack.com

使用 Object.keys() 方法获取 javascript 对象的键

Object.keys() 函数返回一个包含 javascript 对象键的数组。我们将 javascript 对象作为参数传递给 Object.keys() 函数。输出数组包含的键的顺序与它们在原始 javascript 对象中的顺序相同。如果我们将数组传递给 Object.keys(),它将返回数组索引作为输出。并且参数对象带有索引,那么 Object.keys() 将返回这些索引的数组。请参考以下代码以了解 Object.keys() 函数的用法和行为。

image-20221109141758651

var fruitsArr1 = ["Apple", "Orange", "Mango", "Banana"];
var fruitsObj2 = { 0: "Apple", 4: "Orange", 2: "Mango", 3: "Banana"};
var fruitsObj3 = { "id": "1", "name": "mango", "color": "yellow"};
console.log(Object.keys(fruitsArr1));
console.log(Object.keys(fruitsObj2));
console.log(Object.keys(fruitsObj3));

输出:

image-20221109151626439

["0", "1", "2", "3"]
["0", "2", "3", "4"]
["id", "name", "color"]

如果键是数字,Object.keys() 函数将按排序顺序返回数字键的数组。fruitsObj2 具有编号为 0423 的键。但是当我们应用 Object.Keys() 函数时,它返回的键是 ["0", "2", "3", "4"],按排序顺序排列。键值仍将保持与原始 javascript 对象相同的值映射。例如,fruitsObj2 包含 4: "Orange"2: "Mango",但 Object.keys(fruitsObj2) 将它们的顺序返回为 "2", "4"。如果我们是 console.log 他们在键 24 上的值,我们会得到正确的值作为输出。因此,该函数没有修改实际键值映射中的任何内容,即使 Object.keys 按排序顺序返回数组或对象的数字键。参考以下代码。

console.log(fruitsObj2[2]);
console.log(fruitsObj2[4]);

输出:

image-20221109151650413

Mango
Orange

使用 Object.entries(obj) 方法获取 javascript 对象的键

Object.entries(obj) 方法多种多样,比 Object.keys() 函数更灵活。它将整个对象拆分为小数组。每个数组由 [key, value] 形式的键值对组成。使用 Object.keys(),我们只得到一个对象的键,但是使用 Object.entries(obj),我们可以得到一个对象中的所有条目,包括 keys 和它们的 values . Object.entries(obj) 不是常用的方法。在大多数情况下,我们需要从对象中获取键。借助 keys 可以轻松获得相应的值。

语法

Object.entries(object)

参数

Object.keys() 方法相同,Object.entries(obj) 接受 javascript object 作为参数。

返回值

Object.entries(obj) 返回析构为数组的键值对。返回类型将是一个数组数组,每个子数组包含两个元素:键和值。类似于 [[key1, value1], [key2, value2], [key3, value3] ... ]。该函数保留对象属性的顺序。在幕后的实现中,键值对是通过迭代对象属性形成的。请参考以下代码以更好地理解 Object.entries() 函数的行为。我们使用 JSON.stringify() 来获取函数输出值的人类可读字符串版本。

image-20221109141858016

var fruitsObj3 = { "id": "1", "name": "mango", "color": "yellow"};
console.log(JSON.stringify(Object.entries(fruitsObj3)));

输出:

"[["id","1"],["name","mango"],["color","yellow"]]"

我们可以以另一种方式使用 Object.entries()。我们可以遍历 javascript 对象并记录属性键及其值。该方法如以下代码片段所示。

image-20221109141942722

for (const [key, value] of Object.entries(fruitsObj3)) {
  console.log(`${key}: ${value}`);
}

输出:

id: 1
name: mango
color: yellow

如果我们有兴趣从 Object.entries() 函数中单独获取 key,我们可以记录 key 并丢弃值部分。

使用 for 循环获取 javascript 对象的 key

我们可以使用简单的 for 循环从对象中获取键吗?它不是 for 循环的众所周知的特性。我们可以像使用 for-in 组合遍历数组一样遍历任何 javascript 对象。它遍历每个参数,其中 i(迭代器)保存对象的 key,而 object[i] 保存与对象中的 key 对应的值。让我们看看下面的代码来更好地理解这个概念。

var obj = { "id": "1", "name": "mango", "color": "green"};
for(let i in obj) {
  console.log(i); // key
  console.log(obj[i]); // value against the key
}

输出:

image-20221109151807819

id
name
mango
color
green

注意

如果我们只想从对象中提取键,我们可以使用迭代器值。我们可以在上面代码中的 for(let i in obj) 块中使用 console.log(i)

如果我们在 javascript 对象中有嵌套结构,则可以使用 for(let i in obj) 来获取键。但是,嵌套结构的值将是结构本身。参考以下代码。

var a = { 
    "id": "1", 
    "name": "mango", 
    "color": {
        "name": "yellow", 
        "appearance": "bright"
    }
};

for(let i in a){
  console.log(i);
  console.log(a[i]);
}

输出:

image-20221109151843323

id
name
mango
color
{name: "yellow", appearance: "bright"}

标签:JavaScript,console,log,keys,Object,对象,entries,Delft,Stack
From: https://www.cnblogs.com/zhuoss/p/16876577.html

相关文章

  • 学习笔记-Flutter 布局(八)- Stack、IndexedStack、GridView详解
    Flutter布局(八)-Stack、IndexedStack、GridView详解本文主要介绍Flutter布局中的Stack、IndexedStack、GridView控件,详细介绍了其布局行为以及使用场景,并对源码进行了分......
  • 中文书籍对《人月神话》的引用(20211105更新161-165本):大师品软件、JavaScript开发框架
    ​​中文书籍对《人月神话》的引用(第001到160本)>>​​《人月神话》于1975年出版,1995年出二十周年版。自出版以来,该书被大量的书籍和文章引用,直到现在热潮不退。UMLChina摘录......
  • JavaScript错误1
    JavaScript:Failedtoloadresource:theserverrespondedwithastatusof404(NotFound)  解决方法:1.打开idea设置,找到JavaScript保存即可  2.点击ok ......
  • [JavaScript-05]函数和箭头函数
    1.函数functionaddNums(num1=1,num2=2){console.log('num1+num2:',num1+num2);returnnum1+num2;}addNums();addNums(5,6);console.log('addNums(......
  • [JavaScript-03]IF 三元表达式 逻辑运算 == ===
    1.语句//if语句letx=10;if(x==10){console.log('xis10')};//ifelseifelsex=20;if(x===10){console.log('xis10');}elsei......
  • [JavaScript-04]Switch
    1.Switch//Switch语句constcolor='green';switch(color){case'red':console.log('colorisred');break;case'blue':......
  • [JavaScript-02]FOR WHILE循环
    1.语句//For语句for(letindex=0;index<=6;index++){console.log(`ForLoopNumber:${index}`);}//While语句leti=0;while(i<=6){c......
  • JavaScript
    1、什么是JavaScript?JavaScript是一门世界上最流行的脚本语言严格检查:'usestrict'<script>'usestrict'//必须放在第一方行leti=1;</script>2、数据......
  • JavaScript函数
     JavaScript函数JavaScript函数概念    可以储存一段代码的数据类型- 分为两个阶段:函数定义阶段和函数调用阶段- 1.函数定义阶段:把代码放进“盒子”,函数里面代......
  • javascript初识以及总结
    今天主要学习了js的概述,书写的三种位置(和css一样内嵌外联和内联三种)以及变量的定义,变量的定义用的是var来定义的并且学了五种数据类型 有number数值型strin......