首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我不知道键名,如何从另一个对象获取对象

如果你不知道键名,想要从另一个对象获取对象,可以使用以下方法:

  1. 使用for...in循环:通过遍历另一个对象的所有键,然后在目标对象中查找相同的键名,从而获取对应的值。示例代码如下:
代码语言:javascript
复制
function getObjectFromAnother(obj1, obj2) {
  for (let key in obj2) {
    if (obj1.hasOwnProperty(key)) {
      return obj1[key];
    }
  }
  return null; // 如果没有找到对应的键名,则返回null或者其他合适的值
}

const obj1 = { name: "Alice", age: 25 };
const obj2 = { id: 1, name: "Bob", age: 30 };

const result = getObjectFromAnother(obj1, obj2);
console.log(result); // 输出 "Bob"
  1. 使用Object.keys()方法:该方法返回一个包含对象所有键的数组,然后可以通过遍历数组,在目标对象中查找相同的键名,获取对应的值。示例代码如下:
代码语言:javascript
复制
function getObjectFromAnother(obj1, obj2) {
  const keys = Object.keys(obj2);
  for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    if (obj1.hasOwnProperty(key)) {
      return obj1[key];
    }
  }
  return null; // 如果没有找到对应的键名,则返回null或者其他合适的值
}

const obj1 = { name: "Alice", age: 25 };
const obj2 = { id: 1, name: "Bob", age: 30 };

const result = getObjectFromAnother(obj1, obj2);
console.log(result); // 输出 "Bob"
  1. 使用Object.entries()方法:该方法返回一个包含对象所有键值对的数组,可以通过遍历数组,在目标对象中查找相同的键名,获取对应的值。示例代码如下:
代码语言:javascript
复制
function getObjectFromAnother(obj1, obj2) {
  const entries = Object.entries(obj2);
  for (let i = 0; i < entries.length; i++) {
    const [key, value] = entries[i];
    if (obj1.hasOwnProperty(key)) {
      return obj1[key];
    }
  }
  return null; // 如果没有找到对应的键名,则返回null或者其他合适的值
}

const obj1 = { name: "Alice", age: 25 };
const obj2 = { id: 1, name: "Bob", age: 30 };

const result = getObjectFromAnother(obj1, obj2);
console.log(result); // 输出 "Bob"

以上是三种常见的方法,根据具体情况选择适合的方法来获取对象。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Kotlin入门(16)容器的遍历方式

    Kotlin号称全面兼容Java,于是乎Java的容器类仍可在Kotlin中正常使用,包括大家熟悉的队列ArrayList、映射HashMap等等。不过Kotlin作为一门全新的语言,肯定还是要有自己的容器类,不然哪天Java跟Kotlin划清界限,那麻烦就大了。与Java类似,Kotlin也拥有三类基本的容器,分别是集合Set、队列List、映射Map,然后每类容器又分作只读与可变两种类型,这是为了判断该容器能否进行增删改等变更操作。Kotlin对修改操作很慎重,比如变量用val前缀表示不可修改,用var前缀表示允许修改;类默认是不允许继承的,只有添加open前缀才允许该类被继承;至于容器默认为只读容器,如果需要进行修改则需加上Mutable形成新的容器,比如MutableSet表示可变集合,MutableList表示可变队列,MutableMap表示可变映射。 既然Set/List/Map都属于容器,那么必定拥有相同的基本容器方法,具体说明如下: isEmpty : 判断该容器是否为空。 isNotEmpty : 判断该容器是否非空。 clear : 清空该容器。 contains : 判断该容器是否包含指定元素。 iterator : 获取该容器的迭代器。 count : 获取该容器包含的元素个数,也可通过size属性获得元素数量。 初始化赋值 : Kotlin允许在声明容器变量之时进行初始赋值,这点很方便比Java先进,当然不同容器的初始化方法有所区别,具体的对应关系见下表: 只读集合Set    setOf 可变集合    mutableSetOf 只读队列List    listOf 可变队列MutableList    mutableListOf 只读映射Map    mapOf 可变映射MutableMap    mutableMapOf 以上是Kotlin容器的基本方法,更具体的增删改查等用法则有所不同,下面分别介绍这三类六种容器的详细用法。

    02

    java学习与应用(4.5)--Cookie、Session、JSP等

    会话技术:Cookie(客户端),Session(服务端)。一次会话中包含多次请求和响应直到一端断开,在一次会话范围内多次请求间共享数据。 Cookie由服务器发送给客户端使用,供客户端多次使用。服务端:创建Cookie(Cookie对象的构造函数传入Cookie信息)、发送Cookie(response.addCookie方法传入参数),接收Cookie(getCookies)。 idea的Settings-->File and Code Templates-->Web-->Java code templates下可以修改Servlet Annoteated Class自动生成的代码以方便自定义自动生成。 服务器发送cookie保存在,响应头的set-cookie下的参数被客户端获取。当客户端再次请求数据时,请求头中的cookie字段添加了之前获取的cookie。 一次请求可以发送多个cookie键值对(多个Cookie对象通过addCookie方法添加),cookie默认在浏览器关闭时被销毁,可设置持久化存储到硬盘时间(Cookie的setMaxAge方法传入整数秒设定存活时间,0为删除,负数为默认方式) cookie在tomcat8之后支持中文数据(直接使用,但特殊字符仍需编码),在tomcat8之前需要编码(可以使用URLEncoder.encode方法decode解码)。cookie范围,默认情况下tomcat服务器多个项目的cookie不能共享(只能在当前虚拟目录下共享),可以使用setPath方法设置为/则可以共享。 不同的tomcat服务器直接的cookie也可以共享,使用setDomain(String path),设置一级域名,则可以在指定一级域名下共享。 浏览器下的cookie大小有限制(4kb,20个),用于存储少量,不太敏感的数据(不安全)。可以用于网页离线的信息设置和同步(不登录情况下的网页偏好设置)。

    03
    领券