首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获得相反的属性?

如何获得相反的属性?
EN

Stack Overflow用户
提问于 2020-10-03 05:45:30
回答 4查看 138关注 0票数 0

我有下面的对象,(总是)有2个属性。它将始终有两个属性。3个属性是不可能的:

代码语言:javascript
运行
复制
var people = {
   'John': { ... },
   'Peter': { ... }
}

我有一个变量var name = 'John'

'Peter'的值为'John'时,有没有简单的方法来获取属性name的值?而不是硬编码成John en Peter的名字。因此,该函数必须获得与变量name中的值相反的属性

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-10-03 05:53:26

Object.keys将为您提供一个属性名称数组。

filter允许您过滤该数组。

所以:

代码语言:javascript
运行
复制
const name = "John";
const people = {
  'John': 1,
  'Peter': 1
};
const [result] = Object.keys(people).filter(person => person !== name);

console.log({
  result
});

票数 1
EN

Stack Overflow用户

发布于 2020-10-03 05:52:33

代码语言:javascript
运行
复制
let name = 'John'; // or whatever
let names = Object.keys(people);

let otherName = names.find(n => n !== name);
people[otherName] // this gives you the value of the other name's property
票数 2
EN

Stack Overflow用户

发布于 2020-10-03 05:54:53

我写了一个简单的函数,可以做到这一点。它需要一个键和一个对象。它通过给定键的逆键返回给定对象中元素的值。仅当对象只有两个关键点时才有效。

代码语言:javascript
运行
复制
var people = {
    'John': { 'b':[3,4] },
    'Peter': { 'a':[1,2] }
}
getInverseObjectElem = (key,object) => { // Define function 'getInverseObjectElem'
    listOfObjectKeys = Object.keys(object) // Create an array of the object keys
    inverseKey = listOfObjectKeys.filter(k => k != key)[0] // filter the list of keys, and get the first key that doesnt match the given key.
    return object[inverseKey] // Return the value in the object, by the inverseKey
}
console.log(getInverseObjectElem('John',people))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64178592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档