gpt4 book ai didi

javascript - 交换对象上两个属性的值

转载 作者:行者123 更新时间:2023-12-04 01:20:27 26 4
gpt4 key购买 nike

我正在尝试制作一个简单的函数,该函数将交换相同或不同全局对象上的两个属性的值。

object1 = {"key 1":"value 1"};
object2 = {"key 2":"value 2"};

swapValuesInObject ("object1['key 1']","object2['key 2']",true)
// should result in:
// object1 === {"key 1":"value 2"};
// object2 === {"key 2":"value 1"};

另一个例子:
object1 = {"key 1":"value 1", "key 2":"value 2"};

swapValuesInObject ("object1['key 1']","object1['key 2']",1===1)
// should result in:
// object1 === {"key 1":"value 2", "key 2":"value 1"};

到目前为止,这是我能想到的,但并不多。忙于如何完成任务。
function swapValuesInObject(property1, property2, condition) {
if (condition) {
// temp assignment
var Obj1Value = property1;

// do the switcheroo
array1 = array2Value;
array2 = array1Value;
}
return true;
};

这样做的正确方法是什么?

最佳答案

使用 ES6 解构,您现在可以在没有临时变量的情况下进行交换。这不仅适用于交换变量值,如 [a, b] = [b, a]但更复杂的表达式涉及对象的属性,例如:[obj.key1, obj.key2] = [obj.key2, obj.key1] .为避免更多冗余,您需要使用交换功能:

function swap(obj, key1, key2) {
[obj[key1], obj[key2]] = [obj[key2], obj[key1]];
}
swap(obj, 'key1', 'key2');

同样的想法适用于两个对象和两个键:
function swap(obj1, key1, obj2, key2) {
[obj1[key1], obj2[key2]] = [obj2[key2], obj1[key1]];
}
swap(obj1, 'key1', obj2, 'key2');

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

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