提取js对象数组中单个键的所有值

Rob*_*ali 0 javascript

我有一个json的对象集合

{  
   "images":{  
      "1":{  
         "image_data":{  
            "votable":true,
            "hashed_filename":"d66f00cf58c4fbbbc9703efff9c7694c"
         },
         "image_reference":1
      },
      "2":{  
         "image_data":{  
            "votable":true,
            "hashed_filename":"5485a21d47e3815cd7f23d5f8a8c8677"
         },
         "image_reference":2
      },
      "3":{  
         "image_data":{  
            "votable":true,
            "hashed_filename":"4df10b887f12d65f2f541c99f0dd1ef8"
         },
         "image_reference":3
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来提取由下划线分隔的字符串中的hashed_filename值?

我需要一个像这样的结果 d66f00cf58c4fbbbc9703efff9c7694c_5485a21d47e3815cd7f23d5f8a8c8677_4df10b887f12d65f2f541c99f0dd1ef8

Ble*_*ess 6

是.从对象获取所有值作为数组,image_data.hashed_filename从数组中的每个对象获取,然后将所有值连接起来_.

Object.values(obj.images).map(x => x.image_data.hashed_filename).join('_')
Run Code Online (Sandbox Code Playgroud)

但是在评估时Object.values(obj.images),对于值的顺序没有任何保证,因为对象在JS中是无序的.

要按键排序,请从对象获取密钥,对密钥进行排序,获取每个密钥的值.然后映射image_data.hashed_filename并加入(与之前相同).

Object.keys(obj.images).sort().map(x => obj.images[x])
  .map(x => x.image_data.hashed_filename).join('_')
Run Code Online (Sandbox Code Playgroud)