0

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

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

下面的代码被大大简化了,实际的数组包含对象,而不仅仅是字符串。我当前的解决方法涉及获取数组的两个索引。但我感觉到我在这里做错了什么。

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

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

奇怪的是;第一次输出是偶数 b, a, c, d。

4

1 回答 1

4

您需要更新数组本身:

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

obj.arr[0] = destination;
obj.arr[1] = source;
于 2013-01-30T23:35:05.200 回答