用javascript中的函数交换对象的两个属性

2024-04-10

我正在尝试编写一个函数,该函数将采用两个对象(在本例中为人),并且仅交换它们的两个属性。这是我的 Person 函数:

function Person (tall, weight, gender, iq, favoriteColor) {
  this.tall = tall;
  this.weight = weight;
  this.gender = gender;
  this.iq = iq;
  this.favoriteColor = favoriteColor;
}

var joe = new Person("6-2", 180, "male", 130, "blue"); 
var bob = new Person("5-11", 150, "male", 120, "red");

所以我想交换他们的智商和最喜欢的颜色。

到目前为止我有:

function Swap(a, b) {
  var i = a;
  a = b;
  b = i;
  console.log(a, b);
}

这显然交换了它们的所有属性,但我无法弄清楚如何仅交换两个属性并仍然将它们记录为对象。我努力了:

function Swap(a, b) {
  var a = a.iq + a.favoriteColor;
  var b = b.iq + b.favoriteColor;
  var i = a;
  a = b;
  b = i;
  console.log(a, b);
}

但这会在控制台中返回:

120red 130blue.

从技术上讲,它交换了这两个值,但它们作为对象的结构消失了,它们应该保留自己的其他三个属性也消失了。我如何编写交换函数来做到这一点?

Thanks!


这就是你想要的。您需要交换各个字段。您无法像现在一样添加它们。另外,最好不要对已经声明的变量使用相同的名称,这太混乱了。

function Swap(a, b) {
  var i = a.iq;
  a.iq = b.iq;
  b.iq = i;

  i = a.favoriteColor;
  a.favoriteColor= b.favoriteColor;
  b.favoriteColor = i;
  console.log(a, b);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用javascript中的函数交换对象的两个属性 的相关文章

  • D3js 多折线图 mouseOver

    我正在努力适应this http bl ocks org mbostock 3902569D3js 折线图示例 将鼠标悬停在我的多线图表上的使用情况 看起来d3 mouse this 0 on the mousemove函数生成以下错误 无
  • 客户端上传并读取文件,角度为2

    我需要用户的日志文件 以便我可以读取和分析这些文件 例如某种放置区域 用户放置一个文件 然后我可以用javascript读取它 我使用 Angular2 rc5 我有 node js 在后台运行 但我不需要那里的数据 我只需要在客户端 是否
  • 如何使用环回设置 OAuth 2.0 服务器

    我想使用名为 Loopback component oauth2 的包使用 Loopback 设置 OAuth 2 0 服务器 文档在这里 https docs strongloop com display public LB OAuth
  • 在 Swift 中将函数作为参数传递

    在 iOS 8 中 我的以下功能按我的预期工作 func showConfirmBox msg String title String firstBtnStr String secondBtnStr String caller UIView
  • webpack 5 中是否可以让不同的入口包到不同的输出路径

    我正在使用 webpack 打包 google chrome 扩展 我想将文件夹结构保留在 dist 文件夹中 例如 我想将所有弹出资源打包在dist popup 这是我现在的配置 const path require path const
  • JavaScript:字符串连接性能低下? Array.join('')?

    我读过如果我有一个for循环 我不应该使用字符串连接 因为它很慢 例如 for i 0 i lt 10000000 i str a 相反 我应该使用Array join 因为它更快 var tmp for i 0 i lt 10000000
  • 从网站保存嵌入的 pdf

    我正在编写一个小型 C 应用程序来管理供应商提供的 化学品 安全数据表 目前 我手动搜索该化学品并保存 pdf 并在我的程序中添加指向 pdf 的链接 问题是我还有很多化学品需要处理 所以最好将过程自动化 例如 化学品的部件号如下 2710
  • 在 JavaScript onClick 事件处理程序中转义双引号

    下面的简单代码块可以在静态 HTML 页面中提供 但会导致 JavaScript 错误 您应该如何转义中嵌入的双引号onClick处理程序 即 xyz 请注意 HTML 是通过从数据库中提取数据动态生成的 其中的数据是其他可能带有单引号或双
  • 如何在 jQuery 中检查 null 对象

    我正在使用 jQuery 我想检查页面中是否存在某个元素 我写了以下代码 但它不起作用 if btext i null alert btext i text btext i text Branch i 如何检查元素是否存在 检查jQuery
  • 找到两个移动物体的更好交点

    我想极大地优化我的算法之一 我将尽力以最好的方式解释它 主题 我们当时处于二维欧几里德系统中t 0 在这个系统中有两个对象 O1 and O2 O1 and O2分别位于点PA and PC O1移动于常数和已知点方向的速度PB 当物体到达
  • Chrome 扩展允许的键盘快捷键

    当您创建 Chrome 浏览器扩展程序时 您可以通过实现来建议键盘快捷键chrome 命令 https developer chrome com extensions commandsAPI 是否有允许的组合键的记录列表 Chrome 似乎
  • Socket.io 不断重复连接并忽略其他事件

    我正在尝试制作一个网络应用程序 用户可以在其中互相玩环形国际象棋 这是我的 app js 在服务器上 var express require express var app express var http require http Ser
  • 检测 Service Worker 离线状态的最佳实践

    我有一个服务工作者应该缓存一个offline html客户端没有网络连接时显示的页面 然而 有时它会认为导航器已离线 即使它并未离线 那是 navigator onLine false 这意味着用户可能会得到offline html而不是实
  • 在 JavaScript 中添加事件的最佳方式是什么?

    我发现在 JavaScript 中设置事件有两种主要方法 直接在标签内添加一个事件 如下所示 a href do foo a 通过 JavaScript 设置它们 如下所示 a href do bar a 并在 a 中添加一个事件
  • Java:如何复制对象数组?

    现在 我有一个 Point 对象数组 我想制作一个COPY该数组的 我尝试过以下方法 1 Point temp mypointarray 2 Point temp Point mypointarray clone 3 Point temp
  • 无法定义 set 和 get 方法

    尝试使用访问器定义属性时出现错误 这是我的代码 var person Object defineProperty person birthYear value 1997 writable true enumerable true confi
  • 从 BLOB 打印 PDF

    我从外部 API 获取 PDF 文件 使用此代码我可以正确下载该文件 var req new XMLHttpRequest req open POST url true req responseType blob req setReques
  • 将 csv 解析输出保存到变量

    我是使用 csv parse 的新手 项目 github 中的这个示例满足了我的需要 但有一个例外 我不想通过 console log 输出 而是想将数据存储在变量中 我尝试将 fs 行分配给变量然后返回data而不是记录它 但这只是返回了
  • Selenium - 运行 javascript

    我有一个愚蠢的问题 如何运行位于测试站点上的脚本 我可以运行警报 但我无权访问我编写的脚本 我尝试过 runscript geteval 没有任何效果 由于 Selenium 是用 JavaScript 编写的 因此 window 对象会移
  • 查找 div 元素中的所有链接并禁用它们

    假设我有一些如下所示的 HTML 元素 div span a href some link Click me a span div Hello everybody Click a href some link else me a to do

随机推荐

  • React Native如何在单击onPress时调用多个函数

    当我点击时我试图调用多个函数onPress using TouchableOpacity 例如 functionOne do something functionTwo do someting
  • 将 mySQL 查询转换为 Zend Framework 查询的工具

    是否有任何在线 Web 工具可以将 mySQL 查询转换为 Zend FrameWork 查询 也就是说 我输入 mySql 查询 然后工具将其转换为 Zend FrameWork 等效查询 您不需要为此使用工具 在 Zend Framew
  • 在多个 Flex 应用程序之间共享资源(图标/图像)的最佳方式是什么?

    我正在为我不久前创建的 Flex 应用程序创建一个新的 精简版 版本 我已经将许多类和组件移植到编译 SWC 文件的 Flex 库项目中 因为两者都是 Cairngorm 应用程序 所以我无法完全消除重复代码 但我应该能够共享资产 例如图标
  • 我想了解 jQuery 插件语法

    jQuery 站点列出了 jQuery 的基本插件语法 如下所示 function fn myPlugin function there s no need to do this because this is already a jque
  • 我如何在 Angular 8 的 AuthInterceptor 类中获取/使用 accessToken

    我如何在 Auth Interceptor 类中获取 使用访问令牌并将其添加到每个 API NetCore 调用中 我已经实施了 getAccessToken return Auth currentSession then res gt r
  • Visual Studio 2015 中代码契约的最佳替代方案是什么?

    我希望以尽可能最优雅的方式验证代码中的方法参数 代码契约在 2015 年似乎不起作用 有人使用任何替代方案吗 他们正在努力 https github com Microsoft CodeContracts pull 36 https git
  • 将工作分配给更多线程需要更多时间,为什么?

    我有一个小的 C 程序可以计算pi用一个蒙特卡洛 http en wikipedia org wiki Monte Carlo method Introduction 模拟基本上只是测试随机点 x y 是否在圆内部或外部 近似pi我必须使用
  • 崩溃日志:什么是“ARM 线程状态”

    我正在尝试分析 iPhone 崩溃报告 还有一些我不明白的事情 Thread 6 crashed with ARM Thread State r0 0x00000000 r1 0x00000000 r2 0x00000001 r3 0x00
  • Python:在迭代列表时删除列表元素[重复]

    这个问题在这里已经有答案了 我正在迭代 Python 中的元素列表 对其执行一些操作 然后在满足特定条件时将其删除 for element in somelist do action element if check element rem
  • Service Fabric 本地集群设置错误

    点击下面的链接来设置和运行本地集群 https learn microsoft com en us azure service fabric service fabric create your first application in v
  • 将 xsd:any 的类型限制为仅 xsd:string?

    所以我正在编写一个新的 XSD 但遇到了一个小问题 现在我承认我在这些方面并不是最好的 但我本以为我所做的应该有效 但事实并非如此 我所追求的是我有一个名为extraInfo该元素最多可以有 42 个子元素 其名称任意 但只能是字符串类型
  • 获取 UI 线程上的锁

    获取 UI 线程上的锁是一种不好的做法吗 例如 我有一个缓存对象 该对象正在被后台线程和 UI 线程修改 对缓存的任何修改都包含在锁内 伪代码如下 public class Cache private readonly Dictionary
  • 从未知维度的多维数组中获取元素

    如果我有一个 n 维数组 其中 n 在运行时之前是未知数 我如何索引该数组 ReDim indices 1 to n As Long array 1 2 3 data 1 2 3 n 3 data indices I want this 我
  • Java 是否有带有监听器的 Map 实现?

    我想要一个 Map 实现 在其中我可以添加 put 事件的侦听器 标准库或任何第三方库中有类似的东西吗 我不知道任何标准或第三方 但这很简单 只需创建一个包装另一个 Map 并实现 Map 接口的类 public class MapList
  • WPF 自动调整字体大小,直到适合父控件

    我有一个用户控件 其根元素是网格 我还有一个 ContentControl 用作加载数据时填充的某些文本的占位符 该控件可以在用户控件内移动 因此它的位置可以在任何地方 如果文本太长而无法放入用户控件的根网格中 我想减小 ContentCo
  • 从 python 中的字符串获取城市、州或邮政编码

    我希望能够从 python 中的字符串中解析出城市 州或邮政编码 所以 如果我输入 科罗拉多州博尔德 80303科罗拉多州博尔德博尔德 科罗拉多州 80303 这些的任何变化都会返回城市 州或邮政编码 这全部将是用户输入的数据并输入到一个文
  • 从存储过程中检索返回值

    我有一个存储过程 如下所示 CREATE PROCEDURE procTest Add the parameters for the stored procedure here gameId int NULL memberID int NU
  • 在 Python 中,在单元测试期间禁用某些代码的好模式是什么?

    一般来说 我希望禁用尽可能少的代码 并且希望它是明确的 我不希望被测试的代码来决定它是否是测试 我希望测试告诉该代码 嘿 顺便说一句 我正在运行单元测试 请您不要调用 solr 而是将您要发送到 solr 的内容粘贴在此处 以便我可以检查
  • 使用 FLask 和 matplotlib 即时生成图像

    我想绘制图像而不必将其保存在静态文件夹中 我有一个用户 Messa 在这里发布的示例 运行得很好 import io import random from flask import Response from matplotlib back
  • 用javascript中的函数交换对象的两个属性

    我正在尝试编写一个函数 该函数将采用两个对象 在本例中为人 并且仅交换它们的两个属性 这是我的 Person 函数 function Person tall weight gender iq favoriteColor this tall