通过引用交换对象中的数组元素

时间:2013-01-30 23:33:28

标签: javascript

我刚刚发现JavaScript属性总是通过引用返回。我需要他们的价值观。

我有一个带有数组的对象作为其属性之一。我需要在该数组中交换两个值。

下面的代码非常简化,实际的数组包含对象,而不仅仅是字符串。我目前的解决方法是获取Array的两个索引。但我觉得我在这里做错了。

有什么建议吗?下面的代码不是我的解决方法,而是我尝试做出更好的事情。但阵列中没有任何变化。

var obj = {
    arr: ['a', 'b', 'c', 'd']
};

console.log(obj);

var source = obj.arr[0];
var destination = obj.arr[1];

obj.arr[0] = destination;
obj.arr[1] = source;

console.log(obj);

stange是;输出首次是b,a,c,d。

1 个答案:

答案 0 :(得分:4)

您需要更新阵列本身:

var source = obj.arr[0];
var destination = obj.arr[1];

obj.arr[0] = destination;
obj.arr[1] = source;