【问题标题】:getting the value of an object [duplicate]获取对象的值[重复]
【发布时间】:2017-07-12 23:31:21
【问题描述】:

我有一个对象image,其键值如下:

{ homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg' }

我想提取这个对象的值,即“/assets/images/uploads/image-homeSliderImage.jpg”,而不是循环遍历这个对象或使用对象的键。

【问题讨论】:

  • 你试过什么?你能给我们看一些代码吗?
  • 您能否举一个完整对象的示例,您通常希望循环通过的对象,您能否也包括您的尝试,谢谢。
  • 是的,这与您在问题中所写的相同@DavidRamirez 我们需要一些代码
  • 那么,如果它只包含一件事,为什么需要循环遍历它呢?或者您为什么要尝试避免循环遍历不需要循环的内容?

标签: javascript loops object


【解决方案1】:

你可以尝试两种方法,

object[keys] 

如果您不知道密钥,请先获取密钥。

my_dict = { homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg' }
key_li = Object.keys(my_dict)    
console.log(my_dict[key_li[0]])

下一个方法,

使用 underscore.js

console.log(_.values(my_dict))

这将为您提供值列表。你可以使用 underscore.js 玩很多游戏

【讨论】:

【解决方案2】:

有几种方法可以获取对象属性的值。以下是所有形式中最简单的。

var obj = { homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg' };

console.log(obj.homeSliderImage);

【讨论】:

  • 有没有办法在不调用 .homeSliderImage 的情况下获取对象
  • @DavidRamirez 但是你为什么要避免使用homeSliderImage 这是首先拥有它的目的。将console.log(obj.homeSliderImage); 替换为console.log(obj[Object.keys(obj)[0]]);
  • 它是因为我在此之前循环了一个对象并且我得到了多个 { homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg' }; { Something1: '/assets/images/uploads/image-homeSliderImage.jpg' }; 并且每次在这个循环中键都会改变所以我试图避免调用键来获取值对象@NewToJS
  • @DavidRamirez 这就是为什么在您的问题中包含相关源代码很重要的原因,它为其他人提供了调试和解释意外输出原因的东西,并避免人们提出可能与现有的源代码就像使用obj.homeSliderImage 我只能假设这会导致一些冲突,因为这是你不想使用它的唯一原因。
  • @DavidRamirez 好吧,如果键值不断变化并且您不知道该键的名称,那么您可以使用 obj[Object.keys(obj)[0]],正如我在之前的一个 cmets 中所建议的那样。 示例: jsfiddle.net/n0kt3rub
【解决方案3】:

给定一个具有单个属性的对象,可以使用 Object.keys 和第一个(唯一)返回的键来访问该值:

var value = myObject[Object.keys(MyObject)[0]];

例如

var myObj = { homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg' };

console.log(myObj[Object.keys(myObj)[0]]);

对象属性没有排序,因此如果添加更多属性,它们中的任何一个都可能作为“第一个”键返回。

【讨论】:

    【解决方案4】:

    在 JavaScript 中将对象分配给变量后,您可以使用数组表示法直接访问其值,如下所示:

    var o = {homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg'};
    
    var image_path_name_value = o['homeSliderImage'];
    
    console.log(image_path_name_value);

    注意,您需要对象的键才能访问其值。该密钥可以像第一个示例中那样被硬编码,或者您可以通过获取对象的唯一密钥来动态获取它,如下所示:

    var o = {homeSliderImage: '/assets/images/uploads/image-homeSliderImage.jpg'};
    
    var strKey = Object.keys(o)[0];
    
    console.log( o[strKey] );

    更多关于Object.keys()

    【讨论】:

    • key 是一个数组,需要对其进行索引:o[key[0]]
    • 它之所以有效,是因为当您将数组转换为字符串时,它会执行array.join(','),而对于单元素数组,这恰好是该元素。当你可以很容易地使用索引来明确时,编写依赖于此的代码感觉是错误的。
    • 仅在需要字符串的上下文中使用时。 Object.keys(o).lengthObject.keys(o)[0].length 不一样
    • 好的,我已经根据您的帮助修改了我的代码 - 谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多