Javascript对象通过属性获取对象

标签 javascript vue.js ecmascript-6 ecmascript-5

我有一个由 2 个用户组成的对象,如下所示。该对象将只包含 2 个用户。

{
   "71":{
      "avatarURL":"__vue_devtool_undefined__",
      "createdAt":"2018-10-13T16:05:19Z",
      "customData":"__vue_devtool_undefined__",
      "id":"71",
      "name":"Angeline Fadel",
      "updatedAt":"2018-10-13T16:05:19Z",
      "presenceStore":{
         "71":"online"
      }
   },
   "199":{
      "avatarURL":"__vue_devtool_undefined__",
      "createdAt":"2018-10-13T16:06:13Z",
      "customData":"__vue_devtool_undefined__",
      "id":"199",
      "name":"Rodrigo Schuster",
      "updatedAt":"2018-10-13T16:06:13Z",
      "presenceStore":{
         "71":"online"
      }
   }
}

假设我的用户 ID 是 199,如何在不知道其他用户 ID 的情况下获取其名称?

最佳答案

使用Object.keys,您可以获得一个键数组:

const users = { 199: {...}, 71: {...} };
const ids = Object.keys(users); // -> ['199', '71']

知道数组仅包含两个项目和“other”键,您可以使用 Array.prototype.find获取其他项目:

const myId = '199';
const targetId = ids.find(id => id !== myId); // -> '71'

请记住,对象键始终是字符串,因此您可能需要调整 ID 的过滤和操作,将它们视为(或强制转换为)数字。

关于Javascript对象通过属性获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959554/

相关文章:

javascript - 为什么 javascript 的 ES6/Harmony Set 对象会为键/值/条目方法返回空对象?

javascript - 函数/对象字面量之前的问号意味着

javascript - 在 VueJS 中如何判断某个元素是否已重新渲染?

php - 类型错误:传递给 Controller::show() 的参数 2 必须是模态实例,给定字符串

javascript - Canvas 图像消失

java - Struts2 表单经过逐步增强,无需 AJAX 即可工作

javascript - Vue Draggable - 如何只替换选择的项目以防止移动网格上的所有其他项目?

javascript - 如何扩散到导出

javascript - IE中元素问题的位置?

javascript - 如何向 Vue.js Okta 身份验证应用程序添加注册