gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 17:01:23 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,它将接受两个对象,在本例中为人,并且只交换它们的两个属性。这是我的人的功能:

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");

所以我只想交换他们的 IQ 和 favoriteColor。

到目前为止我有:

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.

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

谢谢!

最佳答案

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

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);
}

关于javascript - 在javascript中用函数交换对象的两个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27574428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com